我正在尝试使用批处理脚本动态创建一个小型XML文件,但在编写行开始和结尾时出现问题。
1)如果我做的事情如下:
set foo=^<bar^>
echo %foo% > test.txt这会导致
> was unexpected at this time.
echo <bar> > test.txt2)如果我用引号:echo "%foo%" > test.txt包围回显状态变量,它将成功地写入文本文件。但是,很明显,它包含了我无法拥有的引号。
3)然后我想“好吧,那一定是开头和结尾的尖括号.”因此,我在尖括号前后添加了一个字符:
set foo=a^<bar^>a
echo %foo% > test.txt这导致了一些奇怪的输出,看起来像是我的括号被编号了,然后它在寻找一个文件?
echo a 0<bar 1>test.txt
The system cannot find the file specified.我以前写过初级批次剧本,但我觉得我在这里太过分了……任何帮助都是非常感谢的!
发布于 2015-01-08 17:54:47
试试这个:
setlocal ENABLEDELAYEDEXPANSION
set foo=^<bar^>
echo !foo! > test.txt
endlocal使用延迟扩展,并将%替换为!,会使它对其进行不同的评估。
发布于 2015-01-08 17:54:12
如果使用管道,则需要:
set foo=^^^<bar^^^>发布于 2015-01-08 17:54:45
您需要说明双重替代:
set foo=^^^<bar^^^>
echo %foo% > test.txthttps://stackoverflow.com/questions/27846423
复制相似问题