首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有人成功地将xidel输出变量导出到cmd?

有没有人成功地将xidel输出变量导出到cmd?
EN

Stack Overflow用户
提问于 2014-02-22 05:27:04
回答 3查看 727关注 0票数 0

我使用xidel从XML文件中的特定标记中提取一个值,并将其作为var导出到cmd。但是,var似乎根本不会被导出。

我正在使用的示例:

xidel "in.xml“-e "{var1:=text()}”--输出格式命令

我得到了输出:

代码语言:javascript
复制
**** Retrieving:in.xml ****  
**** Processing: in.xml ****  
** Current variable state: **  
SET var1=1234  

(其中1234包含在in.xml中),但var1未设置为可从命令提示符窗口中使用的变量。这是在Windows7机器上。我不知道我是不是不正确地使用了xidel,还是cmd var输出有一个bug。

EN

回答 3

Stack Overflow用户

发布于 2016-07-27 04:48:10

不,您没有正确使用Xidel。

首先,使Xidel变量在cmd中可用的唯一方法是通过使用FOR循环。

其次,在这种情况下,您不应该用大括号将查询括起来。这些是用来创建JSON的,还有其他东西。

第三,它的官方名称是--output-format=cmd,但我猜贝尼托--西德尔的作者--已经原谅了那些忘记了=的人,因为--output-format cmd似乎也能正常工作。如果你使用=,别忘了用^来转义它,因为it's a special character

因此,您的FOR循环将如下所示:

代码语言:javascript
复制
FOR /F "delims=" %%A IN ('xidel.exe -s "in.xml" -e "var1:=..." --output-format^=cmd') DO %%A
票数 1
EN

Stack Overflow用户

发布于 2014-02-22 17:36:27

看看它是如何工作的

代码语言:javascript
复制
@echo off
for /f "delims=" %%a in ('xidel "in.xml" -e "{var1:=text()}" --output-format cmd ^|find /i "set " ') do %%a
set var1
pause
票数 0
EN

Stack Overflow用户

发布于 2016-07-26 22:04:36

对于一个或多个变量:

代码语言:javascript
复制
for /f "delims=" %%a in ('xidel "in.xml" -s --output-format=cmd -e "{var1:=...}" -e "{var2:=...}" -e "{var3:=...}"') do %%a

echo %var1%
echo %var2%
echo %var3%

pause
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21945525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档