Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
Batch file 批量读取嵌套FOR循环中的文件_Batch File - Fatal编程技术网

Batch file 批量读取嵌套FOR循环中的文件

Batch file 批量读取嵌套FOR循环中的文件,batch-file,Batch File,我试图访问一个文件并在嵌套循环中读取其内容,但内部循环无法访问该文件。。(分批) 以下是代码(整个脚本的一小部分): 问题是: 如果“%%b”等于“C:\Documents and settings\test\test.txt”,则内部循环将尝试访问“C:\Documents”(因为有空格)。如果我在“%%b”周围加上双引号,它将把它解析为字符串,而不是文件本身 我该怎么处理呢?这个文件是动态的,我不知道它的名字 谢谢使用FOR/F读取名称中带有空格的文件时,需要使用USEBACKQ选项。USE

我试图访问一个文件并在嵌套循环中读取其内容,但内部循环无法访问该文件。。(分批)

以下是代码(整个脚本的一小部分):

问题是:

如果“%%b”等于“C:\Documents and settings\test\test.txt”,则内部循环将尝试访问“C:\Documents”(因为有空格)。如果我在“%%b”周围加上双引号,它将把它解析为字符串,而不是文件本身

我该怎么处理呢?这个文件是动态的,我不知道它的名字


谢谢

使用FOR/F读取名称中带有空格的文件时,需要使用USEBACKQ选项。USEBACKQ更改各种引号的语义。通常无引号表示文件,双引号表示字符串,单引号表示命令。USEBACKQ选项修改为无引号或双引号表示文件,单引号表示字符串,反引号表示命令。有关详细信息,请在命令提示符下键入有关的帮助

for %%b in (!directory!) do (
   echo File used: %%b
   for /f "usebackq delims= " %%c in ("%%b") do (
      echo %%c
   )
)

非常好用,谢谢!我不知道这个选项对我有帮助:)
for %%b in (!directory!) do (
   echo File used: %%b
   for /f "usebackq delims= " %%c in ("%%b") do (
      echo %%c
   )
)