0

我需要从批处理脚本中读取一些文件中的项目。某些项目的文件名包含一些空格。为此,我使用文件名作为参数,用双引号将其括起来,以便考虑文件名和空格。

read.bat
 for /F %%a in ("%~1") do echo %%a>>result.txt

conf file.TXT
 projectId: BIEW
 artifactId: SPRINT1

批处理像这样运行'read.bat conf file.TXT'。而是进入 result.txt

 projectId: BIEW
 artifactId: SPRINT1

我得到“conf”,文件名的第一部分。谢谢你帮助我!

4

3 回答 3

2

You should use "delims=", session protocol:

>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
于 2013-07-17T14:59:04.220 回答
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
于 2013-07-17T12:18:58.803 回答
0

问题是文件名在传递给脚本时不在引号内。
read.bat conf file.TXT

它需要是

read.bat "conf file.TXT"

If not, then you will have to use both the first and second parameters %1 %2 because the space is interpreted as a break in parameter.

于 2013-07-17T13:26:51.020 回答