当我解析一个xml文件以便在批处理作业中处理时,注释节点似乎被改变了;这与特殊字符有关吗?我该如何防止它。
这样的节点:<!--Location: D:\\Logs-->
通过%% G < D:\\Logs-->
一个小代码示例:
**setLocal EnableDelayedExpansion
for /f "usebackq tokens=* delims= " %%G in ("%HOMEDRIVE%\Logs\Connections.xml") do (
set str=%%G
echo !str!
PAUSE
)
endlocal
**
答案 0 :(得分:2)
你有三个问题。
!
和插入^
作为特殊字符,因为{/ 1}}在扩展后评估为 -loop-var %% G !
显示,例如echo
,OFF
或ON
要解决1.你应该使用延迟切换技巧
要解决2.您可以使用/?
表单。
所以你得到了
echo(
如果要解决3.(空行),可以使用setLocal DisableDelayedExpansion
for /f "usebackq tokens=* delims=" %%G in ("%HOMEDRIVE%\Logs\Connections.xml") do (
set "str=%%G"
setLocal EnableDelayedExpansion
echo(!str!
endlocal
)
对所有行进行编号,因此没有行为空,然后删除循环中的数字。
findstr /n