我有一个包含未知数量的.txt文件的文件夹,其名称如下:
todo.txt
todo (1).txt
todo (2).txt
todo (3).txt
我正在运行此命令来遍历文件并在文件中的每一行上打印文本:for /r %f in (test\*.txt) do (for /f %p in (%f) do echo %p)
/ r正确返回文件名,/ f将输出todo.txt中的每一行文本,但是当它到达todo (1).txt
时,它会执行命令for /f %p in (C:\test\todo (1).txt) do echo %p
并出错The system cannot find the file C:\test\todo.
在这种情况下你怎么逃脱括号?
答案 0 :(得分:3)
使用usebackq
选项允许您双引号文件名
for /r %f in (test\*.txt) do (for /f "usebackq" %p in ("%f") do echo %p)
答案 1 :(得分:1)
在引号之间包围文件名:
"C:\test\todo (1).txt"
实际上问题是空格,而不是括号。