Xml bat文件结果中出现的引号

Xml bat文件结果中出现的引号,xml,batch-file,Xml,Batch File,我尝试对一些文件进行批处理,并使用收集到的信息创建一个XML,但为了在XML中创建字符串,我不得不在引号中声明变量,这些引号稍后会出现在XML中 蝙蝠档案 cls var mybar 设置“mybar=” 对于(*.pdf)中的/r%%i,请拨打:concat%%i 回音“%mybar%”>mig.txt 复制ini.txt+mig.txt+final.txt prova2.txt 后藤:eof :concat 设置“inici=” 设置“mybar=%mybar%%inici%%1%fina

我尝试对一些文件进行批处理,并使用收集到的信息创建一个XML,但为了在XML中创建字符串,我不得不在引号中声明变量,这些引号稍后会出现在XML中

蝙蝠档案


cls
var mybar
设置“mybar=”
对于(*.pdf)中的/r%%i,请拨打:concat%%i
回音“%mybar%”>mig.txt
复制ini.txt+mig.txt+final.txt prova2.txt
后藤:eof
:concat
设置“inici=”
设置“mybar=%mybar%%inici%%1%final%”
后藤:eof
生成的XML文件


”
“而不是行

echo "%mybar%" >mig.txt
您可以在
for
循环中使用
~
从变量中删除引号,如下所示:

(for %%a in ("%mybar%") do echo %%~a )> mig.txt
这应该可以解决您的问题,但显然不能重新格式化生成的XML

set
的输出将是
mybar=
@echo off
setlocal enableextensions disabledelayedexpansion
设置“openFile=”
(对于(*.pdf)中的/r%%i(
设置“文件=%openFile%%%~fi%closeFile%”
延迟扩展
回声(!文件!
端部
))>mig.txt
复制ini.txt+mig.txt+final.txt prova2.txt

我试过了,但没有成功。它给结果增加了~a。无论如何,谢谢,它在我的机器上工作。你使用的是什么版本的Windows?Windows 7 Home Premium Service Pack 1太棒了!非常感谢。你解决了我后来在初始代码中看到的另一个错误,所以再次感谢。
echo "%mybar%" >mig.txt
(for %%a in ("%mybar%") do echo %%~a )> mig.txt
FOR /f "tokens=1*delims==" %%a IN ('set mybar') DO IF "%%a"=="mybar" >mig.txt ECHO(%%b
@echo off
    setlocal enableextensions disabledelayedexpansion

    set "openFile=<file indexFlag="False"> <name><![CDATA["
    set "closeFile=]]></name><folder><![CDATA[pdfs]]></folder></file>"

    (for /r %%i in (*.pdf) do (
        set "file=%openFile%%%~fi%closeFile%"
        setlocal enabledelayedexpansion
        echo(!file!
        endlocal
    )) > mig.txt

    copy inici.txt+mig.txt+final.txt prova2.txt