File 从批处理脚本中将项目读入其名称包含一些空间的文件
我需要从批处理脚本中读取一些文件中的项目。某些项目的文件名包含一些空格。为此,我使用文件名作为参数,该参数用双引号括起来,以便考虑带有空格的文件名File 从批处理脚本中将项目读入其名称包含一些空间的文件,file,batch-file,File,Batch File,我需要从批处理脚本中读取一些文件中的项目。某些项目的文件名包含一些空格。为此,我使用文件名作为参数,该参数用双引号括起来,以便考虑带有空格的文件名 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 projec
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”,文件名的第一部分。谢谢你帮助我 试试这个:
for /F "tokens=*" %%a in ("%~1") do echo %%a>>result.txt
戴夫·鲁曼是对的。根据您使用result.txt的方式,您可能需要执行以下操作:
for /F "tokens=*" %%a in ("%~1") do echo "%%a">>result.txt
试试这个:
for /F "tokens=*" %%a in ("%~1") do echo %%a>>result.txt
戴夫·鲁曼是对的。根据您使用result.txt的方式,您可能需要执行以下操作:
for /F "tokens=*" %%a in ("%~1") do echo "%%a">>result.txt
问题是文件名传递到脚本时不在引号内。
read.bat conf file.TXT
这是必须的
read.bat“conf file.TXT”
如果没有,则必须同时使用第一个和第二个参数
%1%2
,因为空格被解释为插入参数。问题是,文件名在传递到脚本时不在引号内。read.bat conf file.TXT
这是必须的
read.bat“conf file.TXT”
如果没有,则必须同时使用第一个和第二个参数%1%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
>键入read.bat
@对于/F“usebackqdelims=““%1”中的%%a”,请执行@echo%%a
>键入“conf file.txt”
1.
2.
3.
4.
5.
>read.bat“conf file.TXT”
1.
2.
3.
4.
5.
您应该使用会话协议:
>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
>键入read.bat
@对于/F“usebackqdelims=““%1”中的%%a”,请执行@echo%%a
>键入“conf file.txt”
1.
2.
3.
4.
5.
>read.bat“conf file.TXT”
1.
2.
3.
4.
5.
我得到了与前面相同的结果:“conf”。谢谢,我得到了与前面相同的结果:“conf”。谢谢尝试之后,我得到了“conf file.TXT”,而不是result.TXT中的每一项数据文件。谢谢尝试之后,我得到了“conf file.TXT”,而不是result.TXT中的每一项数据文件。谢谢,谢谢。使用usebackqdelims可以很好地工作。请问usebackqdelims和delims的主要区别是什么?我有时读过一些关于usebackqdelims的东西,但我从来都不明白它的目的。再次感谢如果您需要在文件名中添加空格,则文件名必须用双引号括起来。现在必须添加
usebackq
,否则windows读取的不是文件,而是文件名:)谢谢。使用usebackqdelims可以很好地工作。请问usebackqdelims和delims的主要区别是什么?我有时读过一些关于usebackqdelims的东西,但我从来都不明白它的目的。再次感谢如果您需要在文件名中添加空格,则文件名必须用双引号括起来。现在必须添加usebackq
,否则windows读取的不是文件,而是文件名:)