在批处理脚本中将用户输入的第一个字母变为大写

2023-12-02

这是我用来为新客户端创建文件夹的批处理脚本:

@ECHO OFF
SET /p clientLast=Enter Client's Last Name: 
SET /p clientFirst=Enter Client's First Name:  
ECHO Making Folders...
MKDIR "%clientLast%, %clientFirst%"
MKDIR "%clientLast%, %clientFirst%"\Budget
MKDIR "%clientLast%, %clientFirst%"\"Business Registration"
MKDIR "%clientLast%, %clientFirst%"\Correspondence
MKDIR "%clientLast%, %clientFirst%"\"Financial Info"
MKDIR "%clientLast%, %clientFirst%"\Forms
MKDIR "%clientLast%, %clientFirst%"\Illustrations
MKDIR "%clientLast%, %clientFirst%"\"Loans & Investments"
MKDIR "%clientLast%, %clientFirst%"\"Personal Info"
MKDIR "%clientLast%, %clientFirst%"\Recommendations
MKDIR "%clientLast%, %clientFirst%"\"Tax Misc"
TREE "%clientLast%, %clientFirst%"
ECHO DONE~~~~~~~~~~~~~~~
PAUSE

我希望能够添加自动将每个单词的第一个字母大写的功能。

我找到了一种方法,将每个字母前面的空格替换为大写字母,如下所示:

FOR %%i IN ("a=A" " b= B" " c= C" " d= D" " e= E" " f= F" " g= G" " h= H" " i= I" " j= J" " k= K" " l= L" " m= M" " n= N" " o= O" " p= P" " q= Q" " r= R" " s= S" " t= T" " u= U" " v= V" " w= W" " x= X" " y= Y" " z= Z") DO CALL SET "%1=%%%1:%%~i%%"

但这并没有将第一个单词大写......

有任何想法吗?


或者用纯批次...

@echo off
setlocal EnableDelayedExpansion
call :FirstUp result hello
echo !result!

call :FirstUp result abc
echo !result!

call :FirstUp result zynx
echo !result!
goto :eof

:FirstUp
setlocal EnableDelayedExpansion
set "temp=%~2"
set "helper=##AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ"
set "first=!helper:*%temp:~0,1%=!"
set "first=!first:~0,1!"
if "!first!"=="#" set "first=!temp:~0,1!"
set "temp=!first!!temp:~1!"
(
    endlocal
    set "result=%temp%"
    goto :eof
)

函数 :FirstUp 使用使用 %var:*x=% 语法在辅助字符串中搜索第一个字符的技巧。

这会删除第一次出现之前的所有字符(因此我将所有字符加倍) 因此,首先您得到单词“vox”、“VWWXXYYZZ”,然后我只需采用 %first% 的第一个字符来获取大写字母,并在第一个字符之后附加原始字符串的其余部分。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在批处理脚本中将用户输入的第一个字母变为大写 的相关文章

  • 需要帮助通过批处理文件添加注册表项

    我正在尝试通过cmd添加以下注册表项 我无法让其他用户能够使用以下命令添加此注册表项regedit exe s Location Project reg HKEY CURRENT USER Software Autodesk Fabrica
  • 任务中的 ConEmu 命令

    我试图在 ConEmu 中获取一个任务来打开多个控制台 并在每个控制台打开时运行一个类似批处理的脚本 例如 打开 Git Bash 将控制台命名为 X 将当前目录设置为 Y 打开另一个 Git Bash 并运行一组命令 例如 cd A B
  • 批处理文件测试错误级别

    我试图在另一个 exe 成功执行时有条件地从批处理文件有条件地运行一个 exe 我尝试了 IF 和 ERRORLEVEL 的几种不同组合 但似乎都不起作用 TeamBuildTypes Current Branch DatabaseUpda
  • 比较批处理文件中的两个数字

    我在这个网站上搜索了我的问题 但没有找到解决我问题的方法 系统为玩家和计算机提供一个从 2 到 12 的随机数 这有 3 部分 X 大于 Y 如果 X 小于 Y 以及当 X 与 Y 相同 当我开始 bat 效果很好 我选择Play Game
  • 批处理脚本 FOR 循环仅设置输出的第一个字母 wsl --list -q

    我正在编写一个批处理脚本 将文件从 Windows 目录复制到 WSL 发行版 其中一部分是选择将文件复制到哪个发行版 如果我使用命令wsl list q如果给我以下输出 Ubuntu 22 04 Ubuntu 18 04 我正在尝试使用此
  • Windows批处理文件:将结构转换为单行字符串

    我需要将这个艰巨的任务作为批处理文件来完成 这对于 C 来说不是最困难的 但在 DOS 中是一个地狱 至少对我来说 我需要将结构转换为单个 var 字符串 才能在我的程序中再次将它们转换为该结构 别担心回归 一切都已经完成了 该结构的大小会
  • 使用参数将变量从 vbscript 传递到批处理文件

    请问如何将 inp 变量从这段 vb 传递到我的名为 job bat 的批处理 确实 在从 job bat 进行回显 echo 2 时 我注意到 inp 未正确传递 提示命令视图 inp而不是从 vbs 检索到的值 谢谢 For Each
  • 如何使用批处理文件复制(和增量)文件的多个实例

    我需要创建一个批处理文件来复制文件并在将其放置到目的地时递增它 例子 copy C TEMP MyDoc txt E MyData 本质上 我需要这个复制命令在每次启动时进行复制 现在效果很好 我希望它增加文件名而不是覆盖它 如果我运行此命
  • 批处理脚本 - IF EXIST 复制到 %localappdata% 错误

    我似乎被批处理脚本困住了 需要一些帮助 基本上我需要检查文件是否存在于文件夹中 localappdata 如果确实如此 则覆盖该文件 如果没有放置在不同的位置 那么目前它的内容如下 IF EXIST localappdata foldern
  • 批处理文件中是否存在“Power to”功能? (指数)

    Problem 有没有办法将变量 乘以 数字或其他变量的批处理文件 有这个功能吗 Python 中的一个示例是您可以使用 为 到 的力量 EDIT 您可以在批处理文件中进行数学运算 http en wikipedia org wiki Ba
  • MS Batch:检查驱动器是否正在使用

    我需要检查驱动器 Z 是否正在使用 例如 正在由应用程序使用 已打开 我的批处理文件如下所示 Mount Z wait 15 minutes check if drive Z is in use IF NOT unmount Z ELSE
  • 在重定向文件 (>output.txt) 中显示带重音符号的字符

    example mode con cp gt tmp output tmp notepad tmp output tmp show Statut du p riph rique CON Page de codes 850 代替 Statut
  • 为什么非交互式批处理脚本认为我按下了 Control-C?

    因此 当输出日志中突然出现以下内容时 我的批处理脚本运行得很好 21 27 13 99 c apps w7lab scripting gt some command Error 3221225786 CTerminate batch job
  • 如何运行 Windows 批处理文件但隐藏命令窗口?

    如何运行 Windows 批处理文件但隐藏命令窗口 我不希望 cmd exe 在执行文件时在屏幕上可见 这可能吗 如果你写一个非托管程序并使用创建进程 https learn microsoft com en us windows win3
  • 用于删除扩展名为 .bak 的文件的批处理文件

    我想批量删除磁盘上各个文件夹中的所有文件 bakc 谁能帮我 ex all c del bak s a 谢谢 它可以是单个命令 del s q f c bak
  • 如何通过批处理文件打开Windows防火墙上的端口

    有没有办法在批处理文件中通过批处理文件打开 Windows 上的特定端口 如果让安装程序为我们的服务器应用程序执行此操作 而不是让用户手动执行此操作 那就太好了 Use 执行程序 http technet microsoft com en
  • 将目录添加到path环境变量

    我的要求是将目录之一添加到path安装我的应用程序时 Windows 中的环境变量并将其删除path使用批处理文件卸载时的环境变量 在与此相关的 stackoverflow 答案之一中 建议将目录添加到路径环境变量中 setx path C
  • 如何将 .bat 文件中的变量获取到 PowerShell 脚本中?

    我正在用 PowerShell 替换 bat 脚本的部分内容 批处理文件的配置是通过以下文件完成的set适当的环境变量 我正在寻找一种方法将这些变量值加载到 ps1脚本 无需修改 bat文件 因为它们也在其他地方使用 一个例子 bat看起来
  • 获取文件夹及其子文件夹中最长文件路径的长度

    我正在寻找一个可以从命令行 批处理 PowerShell 运行的脚本 该脚本将遍历文件夹及其子文件夹 并返回一个数字 该数字是最长文件路径的长度 我已经看到了一些批处理和 PowerShell 脚本 例如 如何在 Windows 中查找路径
  • 如何仅回显“开”或“关”文本?

    大家都知道 在 Windows 命令文件中 cmd echo on echo off 启用和禁用回显 但是如何仅回显文本 on 或文本 off IE 如何发送文本 on off to stdout 目标系统 Windows XP 那么在 D

随机推荐

  • 如何使用 PHP 查找序列中缺失的值?

    假设您有一个数组 value gt timestamp 这些值随着时间的推移而增加 但可以随时重置 例如 array array 1 gt 6000 2 gt 7000 3 gt 8000 7 gt 9000 8 gt 10000 9 gt
  • 函数必须只有一个参数

    我已经很长时间没有用 C 编写代码了 我正在尝试修复一些旧代码 我收到错误 TOutputFile TOutputFile operator lt lt TOutputFile T must have exactly one argumen
  • sympy autowrap(cython):参数数量的限制,数组形式的参数?

    我有以下问题 我想使用 autowrap 生成 sympy 矩阵的编译版本 其中单元格包含 sympy 表达式 根据我的问题的具体说明 参数的数量可能会变得非常大 我遇到了以下两个问题 autowrap 接受的参数数量似乎限制为 509 即
  • 生成最多一定数量的素数列表

    我正在尝试生成 10 亿以下的素数列表 我正在尝试这个 但这种结构非常糟糕 有什么建议么 a lt 1 1000000000 d lt 0 b lt for i in a for j in 1 i if i j 0 d lt c d i 乔
  • 防止 Apache 对 gzip 内容进行分块

    当在 Apache2 中使用 mod deflate 时 Apache 将对 gzip 内容进行分块 设置 Transfer encoding chunked 标头 虽然这会加快下载时间 但我无法显示进度条 如果我自己在 PHP 中处理压缩
  • 如何从 Javascript 中删除tinymce编辑器按钮?

    我正在使用 TinyMCE4 3 10 作为 Wordpress 4 5 4 的一部分 我使用以下代码创建一个自定义的tinymce编辑器 tinyMCE execCommand mceAddEditor false captionId t
  • 可以使用动态 html 表作为源数据吗?

    如果我有一个 html 表 其中包含根据文件中的过滤器计算的值 我是否可以根据这些值读取并生成绘图 我不确定回答这个问题是否重要 但我主要使用 R 并使用 r 代码块从我使用创建的共享数据对象名称shared ert计算总和crosstal
  • 对静态成员的未定义引用

    我正在使用交叉编译器 我的代码是 class WindowsTimer public WindowsTimer frequency QuadPart 0ull private static LARGE INTEGER frequency 我
  • 使用 DatePicker 记录 Espresso 测试

    测试记录器生成的代码在记录后运行时立即失败 原因是 在录制时 我点击年份 年份旋转器弹出 我向后滚动 然后选择其中一个年份 记录器不捕获滚动 在 Xcode 中 他们添加了一种滚动到项目的方法 我在浓缩咖啡中找不到类似的东西 使用Andro
  • 使用 openNLP maxent 训练模型

    我有黄金数据 其中注释了多个文档中的所有房间号 我想使用 openNLP 来训练一个使用这些数据并对房间号进行分类的模型 我不知道从哪里开始 我阅读了 openNLP maxent 文档 查看了 opennlp tools 中的示例 现在查
  • 可以禁用 Symfony 的 intl 要求吗?

    我在共享主机上有一个 Symfony 2 项目 显然 提供商不会为 PHP 打开 Intl 扩展 有没有办法打开它 或者我被迫重新评估整个项目 如果您的网络服务器不提供intl扩展 您可以使用Locale成分 它可以通过 Composer
  • 在对象数组中,查找属性与搜索匹配的对象的索引的最快方法

    我一直在四处冲浪 试图找到一种有效的方法来做到这一点 但一无所获 我有一个对象数组 如下所示 array i id some number array i name some name 我想要做的是找到 id 等于的对象的索引 例如 0 1
  • 图像无法显示,因为它包含 php gd 中的错误

    这是Link我正在创建一个图像 但是我的 GD 已安装并正常工作 正如我使用第一个示例进行测试时一样 但此代码会中断并标记 图像无法显示 因为它包含错误 CODE
  • Windows Phone 8.1 相机初始化 - 访问被拒绝异常

    使用适用于 Windows Phone 的 8 1 MediaCapture 类 已声明 音频 和 网络摄像头 的功能 其中 90 是would成为异常的原因 Kicker 是 它在 WP 模拟器中完美运行 但在实际设备上却崩溃了 确切的例
  • Java:捕获屏幕上内容的视频

    我们正在考虑用 Java 编写一个软件 在运行时记录特定时间内的监控内容 您对如何有效捕获监视器输出有什么建议吗 占用的 CPU 越少 我们捕获屏幕的频率就越多 生成的视频就越流畅 而不会干扰正在运行的其他应用程序 如果复制屏幕捕获部分不是
  • fgetcsv( ) 和 Unicode 的问题

    我有一个代码 在本地主机上 我读取 csv 文件 带有 Unicode 字符 没有问题 但是当在主机上上传代码时输出什么也没有 为什么 什么是解决方案 while data fgetcsv fin 5000 FALSE var dump d
  • ThumbnailUtils.createVideoThumbnail 对于现有 mp4 视频返回 null

    我有一个视频 我需要获取它的缩略图 我用ThumbnailUtils用于此目的的类 但它返回 null 而不是预期的Bitmap 当我调试我的应用程序时 我在里面看到了createVideoThumbnail method MediaMet
  • 在服务器端渲染中反应传单地图错误

    已解决 请阅读更新 2 你好 我在使用 React leaflet 地图的 React 入门套件中遇到此错误 它就像 github 模块示例 但我不知道问题是什么 我认为SSR有问题 React 版本 16 x 和 React 入门套件 更
  • WiX 静默安装无法启动内置 .EXE:WiX v3

    我知道这可能看起来像是重复的 但我已经尝试了几乎所有在线内容 包括下面的链接 使用双击时 安装成功完成 并启动我的 EXE 它是一个 WPF UI 问题是 如果在命令行中运行 WiX 安装程序会安装 但我的 WPF 不会启动 没有驱动程序更
  • 在批处理脚本中将用户输入的第一个字母变为大写

    这是我用来为新客户端创建文件夹的批处理脚本 ECHO OFF SET p clientLast Enter Client s Last Name SET p clientFirst Enter Client s First Name ECH