如何从forfiles变量中删除引用

fed*_*evo 5 windows variables command-line cmd

我需要使用forfiles命令从windows命令提示符生成一个xml.

我不是那么远,但变量包含引号,我不想要它...

这是我当前的命令:

%FF_CMD% /c "cmd /c if @isdir==TRUE echo ^<root^>^<dir^>@fname^</dir^>^</root^>"
Run Code Online (Sandbox Code Playgroud)

结果是:

<root><dir>"DIRNAME"</dir></root>
Run Code Online (Sandbox Code Playgroud)

但我想要这个:

<root><dir>DIRNAME</dir></root>
Run Code Online (Sandbox Code Playgroud)

任何的想法 ?

提前致谢

MBu*_*MBu 7

您可以创建其他批处理文件,例如"echoxml.bat".这将允许使用~符号来删除引号:

@echo off
echo ^<root^>^<dir^>%~1^</dir^>^</root^>
Run Code Online (Sandbox Code Playgroud)

然后在forfiles中使用批处理文件:

%FF_CMD% /c "cmd /c if @isdir==TRUE echoxml.bat @fname"
Run Code Online (Sandbox Code Playgroud)

编辑:另一种选择是改变forfilesfor,甚至for /d如果可能的话(我不知道你在使用什么参数%FF_CMD%):

@echo off
for /d %%A in (*) do echo ^<root^>^<dir^>%%~A^</dir^>^</root^>
Run Code Online (Sandbox Code Playgroud)