【发布时间】:2016-12-24 16:19:50
【问题描述】:
我正在尝试编写一个 .cmd 文件来获取一个文本文件并在每行的开头添加一个字符串,将所有分号替换为 ASCII 控制代码 30 (RS),并以 RS 结束每一行ASCII 码 31(美国)。当我将 RS 和 US 放入文件时,笔记本不会保存它,除非它是 Unicode,但是当我尝试以 Unicode 运行它时,它不会运行。
这是我所拥有的不起作用的:
@echo on > Convert.txt & setLocal enableDELAYedexpansion
set old=;
set new=▲
set bgnstr=@TESTSTATS▲▲▲
set endstr=▲▼
for /f "tokens=* delims= " %%a in (test1.txt) do (
set str=%%a
set str=%BGNSTR%!str:%old%=%new%!%endstr%
>> Convert.txt echo !str!
)
如果我用任何其他字符代替 RS/US,它会做我想做的事。
【问题讨论】:
-
for /f "tokens=* delims= "定义一个空格作为分隔符;连同标记*,这将删除前导空格(但不删除制表符);你想要那个吗? -
在我要转换的文件中,每个字符串都在自己的行上,所以我的工作正常。
标签: windows batch-file text unicode ascii