跳过变量看起来不可能

时间:2013-12-10 19:08:39

标签: variables batch-file echo

所以我想将Echo %% a转换成另一个txt文件,但似乎没什么用。 这是代码:

for /f "delims=" %%a in ( 
'dir "*.txt" /b /s /a-d' 
) do Echo for /f "delims=" %%a in ^( >> "%%a"

简单:输出文件如下:

  

“for / f”delims =“C:\ Documents and   设置\ xxxxx \ Desktop \ alpha \ lol.txt in(“。

我只需要一个完整的路径,但“ %% a ”。蝙蝠文件。

3 个答案:

答案 0 :(得分:1)

你想要文字%%a

尝试%%%%a


第二个建议:

尝试%%%%^a

第三 - 将元变量(循环控制变量)更改为%%b

for /f "delims=" %%b in ( 
'dir "*.txt" /b /s /a-d' 
) do Echo for /f "delims=" %%%%a in ^( >> "%%b"

答案 1 :(得分:0)

试试这个:

 for /f "delims=" %%a in ('dir "*.txt" /b /s /a-d' ) do Echo %%a >> output.txt

答案 2 :(得分:0)

如您所见,在循环中不能直接转义%%a表达式。

但是像Magoo提到的那样,它可以通过改变循环参数来解决。

您也可以使用解析器创建%%a输出。

setlocal EnableDelayedExpansion
set "static=for /f "delims=" %%%%a in ("
for /f "delims=" %%a in ( 'dir "*.txt" /b /s /a-d') do (
  echo !static! >> "%%a"
)

变量static的内容将会展开,但内部%%a稍后不会展开。