批处理 - 将变量转换为大写

2023-12-26

我将如何改变destl变量在使用前转换为大写。我假设某种角色交换,但我无法让它工作。代码如下——

@echo off
echo.

set /P "destf=Enter First Name: "

set /P "destl=Enter Last Name: "

set "findest=Z:\ProjectIT\copy\%destl%, %destf%"

robocopy Z:\ProjectIT\copy\test "%findest%" /e /NFL /NDL /NJH /NJS

robocopy Z:\ProjectIT\copy\Construction "%findest%"\1-BLANK-%destl% /e /NFL /NDL /NJH /NJS"

echo Construction folder has been created for "%destl%"
echo.

pause

我尝试过调用类似以下的内容,但无法让它工作 -

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

抱歉,代码很粗糙 - 我对此很陌生。

Regards,

Joshua


最短的方法(无需第三方下载)是使用 PowerShell。

set "str=The quick brown fox"
for /f "usebackq delims=" %%I in (`powershell "\"%str%\".toUpper()"`) do set "upper=%%~I"

与任何纯批处理解决方案相比,更快但使用的代码仍然更少的方法是使用 WSH。

@if (@CodeSection == @Batch) @then
@echo off & setlocal

set "str=The quick brown fox"
for /f "delims=" %%I in ('cscript /nologo /e:JScript "%~f0" "%str%"') do set "upper=%%~I"
set upper
goto :EOF

@end // end Batch / begin JScript hybrid
WSH.Echo(WSH.Arguments(0).toUpperCase());

当然,您可以轻松地创建一个函数,这样您就可以call根据需要多次。

@if (@CodeSection == @Batch) @then
@echo off & setlocal

call :toUpper upper1 "The quick brown fox"
call :toUpper upper2 "jumps over the lazy dog."
set upper
goto :EOF

:toUpper <return_var> <str>
for /f "delims=" %%I in ('cscript /nologo /e:JScript "%~f0" "%~2"') do set "%~1=%%~I"
goto :EOF

@end // end Batch / begin JScript hybrid
WSH.Echo(WSH.Arguments(0).toUpperCase());

或者,如果你想对此进行真正的黑客攻击,你可以滥用tree命令的错误消息如下:

@echo off & setlocal

set upper=
set "str=Make me all uppercase!"
for /f "skip=2 delims=" %%I in ('tree "\%str%"') do if not defined upper set "upper=%%~I"
set "upper=%upper:~3%"
echo %upper%
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批处理 - 将变量转换为大写 的相关文章

随机推荐

  • Apache Pig:本地模式下使用简单 GROUP BY 时出现 OutOfMemory 异常

    当我尝试在一个微小的 3KB 随机生成的示例数据集上执行一个非常简单的 GROUP BY 时 我收到了 Pig 的 OutOfMemory 异常 小猪脚本 cat example pig raw LOAD example data USIN
  • Glassfish - 来自同一客户端的同时连接

    我正在构建一个必须处理来自一个客户端的最多 300 个请求的应用程序 我已尝试此链接上建议的所有配置 Glassfish 线程池 接受器线程 HTTP 最大连接数 https stackoverflow com questions 3309
  • 使用 JMeter 发送带有二进制正文的 HTTP 请求

    我正在尝试使用 JMeter 发送带有二进制内容的 HTTP 请求 在文档中 我发现我可以发送带有二进制内容的文件 我认为这对于我的需求来说不是一个好的解决方案 因为每个请求都有自己的二进制内容 下面是我用 Perl 编写的客户端示例 演示
  • 如何制作一个简单的密码页面[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 小心 英语不好 我正在尝试创建一个页面 其中只有一个 小块 您可以在其中键入我设置的密码 如果您输入正确的密码并按 输入站点 按钮 您
  • GITLAB CI 管道未触发

    我已经为 GitLab CI CD 编写了这个 yml 文件 有一个已配置并正在运行的共享运行器 我是第一次这样做 不确定我哪里出错了 我正在进行的 Angular JS 项目 存储库上有一个 gulp 构建文件 并且在本地计算机上完美运行
  • 正则表达式 - 替换除 URL/URI 内的单词

    为 Web 应用程序编写全球化模块 我需要一个正则表达式来用另一个单词 翻译 替换一个单词的所有实例 除了在 URL URI 中找到的单词 编辑 我忘了提及我正在使用 Ruby 所以我不能使用 Lookbehind 根据 URI 正则表达式
  • 当前上下文中不存在错误但编译正常

    我遇到了一个我认为有点奇怪的问题 我收到两个 当前上下文中不存在 错误 Error 1 The name employeeDetails does not exist in the current context c users kelly
  • Qt/QML:将 QImage 从 C++ 发送到 QML 并在 GUI 上显示 QImage

    我创建了一个类Publisher它周期性地发出QImage目的 然而我很难画出QImage到 QML 元素 看来Image and CanvasQML 组件需要QUrl代替QImage 但我不知道如何转换我的QImage to a QUrl
  • 使用 ffmpeg 和 xfade 过滤器合并多个视频文件[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我需要将多个视频文件 包含音频 合并到一个视频中 我注意到 xfade 最近发布并使用了它 但我遇到了音频同步问题 所有视频的视频和音
  • UWP/WinRT:如何保存然后恢复简单的文本框以从终止状态恢复?

    In 这个文件 https msdn microsoft com en us library windows apps xaml mt243287 aspx在描述 Windows 10 UWP 应用程序的生命周期时 它指出 用户现在希望您的
  • 为什么 Jupyter 寻找我尚未安装的扩展?

    即使在完全原始的虚拟环境中 我也会收到以下形式的错误 Package jupyter server terminals took 0 0020s to import W 2023 09 14 09 17 01 917 ServerApp N
  • 使用 php SOAP 和 WSDL 的正确步骤是什么?

    我已经解决了许多问题和困惑 请参阅 关于此问题的最终代码和问题 https stackoverflow com questions 27147950 soap issue server was unable to process reque
  • Bootstrap 3 带有输入组的验证状态

    如何将 Bootstrap 3 验证状态添加到输入组 该状态似乎仅适用于组的输入部分 编辑 10 02 2014 为了澄清 我使用带有按钮的输入组 div class form group has success col md 3 div
  • C++ 错误 - C4819、C2761、C2447

    我正在使用 Visual Studio 2017 来了解 SFML 和精灵动画 但我无法运行此代码 我用编码 Unicode 带有签名的UTF 8 代码页65001 保存它 include
  • C中的字符数组消隐

    code int main int n m i j char a 10 10 printf enter n and m values n scanf d d n m printf enter array values for i 0 i
  • Webpack UMD:关键依赖项...无法静态提取

    我正在尝试使用 webpack 构建一个 umd 库 无论我做什么都会收到警告 D Code Node sample io source index ts 中的警告 3 24 关键依赖 require函数的使用方式无法静态提取依赖 当我尝试
  • 访问远程服务器时MySQL连接出错

    I ve 托管 MySQL 数据库 in a 网络服务器 I ve 授予所有权限并允许我的IP远程连接到这个数据库从我的本地计算机 它已连接 我可以将数据从数据库检索到我的 Java Swing 应用程序 但是有时我收到此错误消息 and
  • 自定义鸭子类型的 Python 类型注释

    蟒蛇的typing模块定义了许多鸭子类型 例如 typing SupportsAbs表示任何实现了 abs 特殊方法 是否可以以某种方式定义自定义鸭子类型 以便我可以将它们用作有效的类型注释 例如 我希望能够注释一个参数应该是一个鸭子类型的
  • 使用 Ajax 从实时 PHP 和 Python 输出更新页面内容

    老用户 第一次提问 我从社区学到了很多东西 我喜欢这个网站 这就是我拍摄的目的 我想要一个在后端运行 ping 命令的 Web 界面 理想情况下 我想要一个网站 该网站具有允许您输入 IP 地址或域的文本输入 运行命令的按钮以及从 PHP
  • 批处理 - 将变量转换为大写

    我将如何改变destl变量在使用前转换为大写 我假设某种角色交换 但我无法让它工作 代码如下 echo off echo set P destf Enter First Name set P destl Enter Last Name se