Command line DOS/Windows xmlstarlet使用字符串而不是xml文件

Command line DOS/Windows xmlstarlet使用字符串而不是xml文件,command-line,echo,call,xmlstarlet,Command Line,Echo,Call,Xmlstarlet,xmlstarlet是否可以与字符串而不是xml文件一起使用? e、 g: 或者我怎么能用一根绳子来实现呢? 当我回显字符串并将其传输到xmlstarlet时,它不起作用: SET "_var=^<pathlist^>^<path^>C:\file.txt^</path^> ^</pathlist^>" & call echo %^_var% | xmlstarlet sel -t -v "//*" 给出错误: < was une

xmlstarlet是否可以与字符串而不是xml文件一起使用? e、 g:

或者我怎么能用一根绳子来实现呢? 当我回显字符串并将其传输到xmlstarlet时,它不起作用:

SET "_var=^<pathlist^>^<path^>C:\file.txt^</path^> ^</pathlist^>"
& 
call echo %^_var% | xmlstarlet sel -t -v "//*"
给出错误:

< was unexpected at this time.
-:1.1: Document is empty

^
-:1.1: Start tag expected, '<' not found

^

这实际上是一项简单的任务,但我无法让它工作。我只想在一行代码中向xmlstarlet回显字符串。

cmd.exe语法很奇怪,使用set/p的以下技巧似乎有效:

C:\tmp><nul (set /p ="<pathlist><path>C:\file.txt</path></pathlist>") | xmlstarlet sel -t -v /*
C:\file.txt

结果是什么?我得到了更多的错误,提供的命令做了什么?@Sandra:我为第一个工作的命令添加了提示和输出,它输出了C:\file.txt,这就是你想要的,对吧?这对我不起作用,我得到了奇怪的错误。这会创建一个空文件吗?应该没有文件,它只是打印到标准输出。我在Windows Vista和7上进行了测试。我发现以下错误C:\Users\user1>
< was unexpected at this time.
-:1.1: Document is empty

^
-:1.1: Start tag expected, '<' not found

^
C:\tmp><nul (set /p ="<pathlist><path>C:\file.txt</path></pathlist>") | xmlstarlet sel -t -v /*
C:\file.txt
C:\tmp> echo ^<^>
<>
C:\tmp> echo ^<^> | more
> was unexpected at this time.