我正在使用类似以下命令行的forfiles
命令(Windows 7 x64):
forfiles /P "C:\root" /M "*.txt" /C "cmd /C echo @relpath"
我该如何避免替换@relpath(当前迭代项的相对路径)以获取文字上的@relpath输出? (…或任何其他@变量?)
到目前为止,我尝试了以下几种方法,但都没有成功:
\
:在\
之前处理@
,因此\@relpath
无效,而扩展输出只是在前面加上\
;^
:声明^@
除了^
消失外没有任何效果;写^^@
也没有帮助,然后扩展输出中仍有一个^
;0xHH
:令人惊讶的是,针对forfiles
的十六进制数0x40
替换也不起作用,似乎这是在变量解析之前完成的;@@
:将@
加倍可以保留第一个@
,就是这样。
set r=0x40
后面的空格或将其括在()
中,像!r!
这样的简单扩展也可以正常工作... - aschipfl