为嵌套循环中的括号括起来吗?

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

在这种情况下如何避免括号?

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

 for /r %f in (test\*.txt) do (for /f "usebackq" %p in ("%f") do echo %p) 

在引号之间围绕文件名:

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

其实问题是白色空间,而不是括号。