Windows批处理文件读取文本文件并将所有内容转换为大写

3

我想简单地将文本文件中的所有文本替换为大写字母。

例如abc.txt

[转换前] 名字, 姓氏, 全名 Brad, Pitt, Brad Pitt

[转换后] 名字, 姓氏, 全名 BRAD, PITT, BRAD PITT

这是否可能?


2
看这里:http://benohead.com/batch-convert-to-uppercase/ - David Starkey
1
请不要这样做!这种例子会让很多人认为批处理语言是原始和粗糙的... - Aacini
@Aacini:我很好地理解你的观点。对你的评论表示赞同。希望没有人会模仿所引用的代码。而且...批处理语言不是原始和粗糙的吗?真的吗?:) 呃...是的。很抱歉说出这个不受欢迎的事实!:) - BaldEagle
1个回答

9
以下批处理文件可以实现您想要的功能,但如果要转换的文件很大,这种方法会比较慢...
@echo off
setlocal EnableDelayedExpansion
for /F "delims=" %%a in (%1) do (
   set "line=%%a"
   for %%b in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
      set "line=!line:%%b=%%b!"
   )
   echo !line!
)

要使用这个程序,请将文件名放在第一个参数中。例如,如果这个批处理文件被称为TOUPPER.BAT:
toupper abc.txt

请注意,该程序会删除文件中的空行和任何感叹号。如果需要修复这些限制,但程序会变得更加缓慢...
安东尼奥

哦我的天啊!它成功了!!!我的文件只有几行,所以性能也没有任何问题!!! - Omi Chiba
!line:%%b=%%b! 是如何工作的?CMD 中的字符串替换是否不区分大小写? - phuclv
@LưuVĩnhPhúc:是的 - Aacini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接