Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 从批处理脚本中将项目读入其名称包含一些空间的文件_File_Batch File - Fatal编程技术网

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读取的不是文件,而是文件名:)