我需要从批处理脚本中读取某些文件中的项目。某些项目文件的名称包含一些空格。为此,我使用文件名作为参数,该参数由双引号括起,以便记录带空格的文件名。
read.bat
for /F %%a in ("%~1") do echo %%a>>result.txt
conf file.TXT
projectId: BIEW
artifactId: SPRINT1
Batch正在运行,就像'read.bat conf file.TXT'一样。而不是进入result.txt
projectId: BIEW
artifactId: SPRINT1
我得到“conf”,文件名的第一部分。谢谢你的帮助!
答案 0 :(得分:2)
您应该使用"delims="
会话协议:
>type read.bat @for /F "usebackqdelims=" %%a in ("%~1") do @echo %%a >type "conf file.txt" 1 2 3 4 5 >read.bat "conf file.TXT" 1 2 3 4 5
答案 1 :(得分:1)
试试这个:
for /F "tokens=*" %%a in ("%~1") do echo %%a>>result.txt
戴夫·鲁曼是对的。根据您使用result.txt的方式,您可能希望改为:
for /F "tokens=*" %%a in ("%~1") do echo "%%a">>result.txt
答案 2 :(得分:0)
问题是文件名在传递给脚本时不在引号内
read.bat conf file.TXT
需要
read.bat "conf file.TXT"
如果没有,则必须使用第一个和第二个参数%1 %2
,因为空格被解释为参数中断。