3

我有一个文件夹,其中包含未知数量的 .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.

在这种情况下,您如何转义括号?

4

2 回答 2

3

使用usebackq选项允许您双引号文件名

for /r %f in (test\*.txt) do (for /f "usebackq" %p in ("%f") do echo %p)
于 2013-06-21T21:52:05.870 回答
1

将文件名括在引号之间:

"C:\test\todo (1).txt"

实际上问题是空格,而不是括号。

于 2013-06-21T21:46:20.790 回答