将项目读入名称中包含批处理脚本中某些空间的文件

时间:2013-07-17 12:15:22

标签: file batch-file

我需要从批处理脚本中读取某些文件中的项目。某些项目文件的名称包含一些空格。为此,我使用文件名作为参数,该参数由双引号括起,以便记录带空格的文件名。

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”,文件名的第一部分。谢谢你的帮助!

3 个答案:

答案 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,因为空格被解释为参数中断。