使用Windows Batch将引用的参数写入文件

时间:2016-02-01 10:11:45

标签: batch-file

首先,我尝试删除文件的内容,然后使用Windows Batch重新编写它们。 这是我到目前为止所管理的内容

break>params.xml

echo "<test>testid="test"<test>" > params.xml
pause

如何删除外部测试标记周围的引号但是在testid参数上保留引号?

最后,我的params XML文件应该只包含:

<test>testid="test"<test>

谢谢!

3 个答案:

答案 0 :(得分:0)

一种方法是使用转义序列作为DaMaxContent提出。 如果您不喜欢这样,可以使用FOR命令:

C:\>set "string=<test>testid="test"<test>"

C:\>for /f "tokens=* delims=" %# in ("%string%") do ((@echo(%#)>>params.xml)

从批处理文件中使用,您需要加倍%

为了更方便地从命令行使用,您可以创建两个简单的宏:

>set "output=for /f "tokens=* delims=" %# in ("
>set "to=) do @(echo(%#)>"
>%output% "<special string>"  %to% file

答案 1 :(得分:0)

@ECHO Off
SETLOCAL
set "string=<test>testid="test"<test>"
FOR /f "tokens=1*delims==" %%a IN ('set string') DO ECHO %%b
set "string=%string:<=^<%"
set "string=%string:>=^>%"

echo(%string%

GOTO :EOF

这里有两种方法,假设你的字符串是文字的,而不是已经在变量中。

答案 2 :(得分:0)

你真的能用^分隔它们吗?

echo ^<test^>testid^=^"test^"^<test^> > params.xml

或者如果你感到非常谨慎:

echo ^<test^>testid^=^"test^"^<test^> > params.xml