我查看了大量的问题,所有问题都提出相同的代码,我不知道为什么它对我不起作用。我尝试使用.bat命令在.txt文件的每一行前添加和附加文本。我的代码目前是
@echo off
for /f "tokens=* delims= " %%a in (patchList.txt) do (
echo copy %%a>>output.txt
)
但是在运行它时根本没有任何事情发生。即使我试图通过摆脱输出参数输出到屏幕,也没有任何反应。有什么建议吗?
答案 0 :(得分:2)
您的patchList.txt
是以Unicode编码创建/保存的。
如果type patchList.txt
提供可读输出,则该文件包含Byte Order Mark,您可以按如下方式调整脚本:
@echo off
for /f "tokens=*" %%a in ('type patchList.txt') do (
>>output.txt echo copy %%a
)
如果type patchList.txt
通过空白或□
白色方块或其他{{�
文本间隔 1}}替换字符然后该文件不包含BOM;然后Powershell
可以提供帮助:
@echo off
for /f "usebackq tokens=*" %%a in (`
powershell -Command Get-Content '%CD%\patchList.txt' -Encoding Unicode
`) do (
>>output.txt echo copy %%a
)
或者,更好,切换到powershell
!
如果由于某种原因powershell
不可接受,那么我们可以使用可以读取Unicode文件的find
命令:尝试
< patchList.txt find "."
请注意 上面的"."
(句号)不是类似正则表达式的模式,也不是通配符,因此可能难以确定所有行匹配角色。