要使用Xidel脚本,在cmd上转义哪些字符
用于刮取HTML:要使用Xidel脚本,在cmd上转义哪些字符,cmd,xidel,Cmd,Xidel,用于刮取HTML: for /f "usebackqDELIMS=" %a in (`^"xidel -s file.html -e 'json(//script[@type="application/ld+json"])/(string)()'^"`) do set "string=%a" 在CMD输出中运行时,会给出: /(字符串)(“`”)此时意外 我假设我需要转义一些字符,在本文档之后,我尝试了许多选项,对各种字符使用胡萝卜,对[]使用反斜杠,但不断出现更多错误 是否有某个字符需要转义
for /f "usebackqDELIMS=" %a in (`^"xidel -s file.html -e 'json(//script[@type="application/ld+json"])/(string)()'^"`) do set "string=%a"
在CMD输出中运行时,会给出:
/(字符串)(“`”)此时意外
我假设我需要转义一些字符,在本文档之后,我尝试了许多选项,对各种字符使用胡萝卜,对[]使用反斜杠,但不断出现更多错误
是否有某个字符需要转义或多个转义,或者根本不是这样?我现在明白了。在这种情况下,您必须修复引号(请参见“9”和“10”):
或
让Xidel为您分配变量。如果您试图在批处理脚本中使用此变量,您的第一个问题是需要将
%a
更改为%a
。其次,(`&`)
需要更改为('
&)
。你知道为什么它会将其垃圾处理成单独的字符串,而不是全部放在一个字符串中吗?现在它会在每行设置一个新字符串,所以技术上只保存最后一个字符串。我假设你指的是Github问题。然后你可能忘了将字符串加入类型项:…-e“string:=json(//script[@type='application/ld+json'])/join((体裁)(,,,)“…
。顺便说一句,如果你对这个答案满意,你能用大拇指竖起这个答案吗?(并以同样的方式关闭Github问题)它在cmd上工作,但当我在最终批处理脚本中包含它时,它给出的文件名目录名或卷标语法不正确
错误。
FOR /F "delims=" %%A IN ('xidel -s file.html -e "json(//script[@type='application/ld+json'
])/(string)()"') DO SET "string=%%A"
FOR /F "delims=" %%A IN ('xidel -s file.html -e "string:=json(//script[@type='application/
ld+json'])/(string)()" --output-format^=cmd') DO %%A