我尝试访问文件并在嵌套循环中读取其内容,但内部循环无法访问该文件..(批处理)
这里是代码(整个脚本的一小部分):
for %%b in (!directory!) do (
echo File used: %%b
for /f "delims= " %%c in (%%b) do (
echo %%c
)
)
问题是:
如果" %% b"等于" C:\ Documents and settings \ test \ test.txt",内部循环将尝试访问" C:\ Documents" (因为空间)。如果我在" %% b"周围加上双引号,它会将其解析为字符串而不是文件本身。
我该如何处理?该文件是动态的,我不知道它的名字......
由于
答案 0 :(得分:2)
使用FOR / F读取名称中包含空格的文件时,需要使用USEBACKQ选项。 USEBACKQ改变了各种引号的语义。通常,没有引号表示文件,双引号表示字符串,单引号表示命令。 USEBACKQ选项修改为没有引号或双引号表示文件,单引号表示字符串,后引号表示命令。在命令提示符下键入HELP FOR
以获取更多信息。
for %%b in (!directory!) do (
echo File used: %%b
for /f "usebackq delims= " %%c in ("%%b") do (
echo %%c
)
)