Windows CLI | 这个批处理行有什么正确的qoutes /语法

set grabber="C:\grabber.exe" for /f "usebackqDELIMS= " %%j in (`%grabber% -s file.txt -e "extract($raw,'grab=(.*)',1)"`) do set grab=%%j 

我的问题是,我得到各种错误输出与“和”在一端或另一端和variables程序永远不会被正确拾取,因为它报告path无法find。

%grabber%是Xidel。

像这样,并且还演示了–output-format = cmd参数:

 for /f %%j in ('^" xidel -s file.txt -e "grep:=extract($raw,'grab=(.*)',1)" --output-format^=cmd ^"') do %%j echo The value of grab = %grep% 

但是,如果你的数据是简单的结构化为一个ini文件,你真的不需要xidel:

 for /f %%j in (' findstr "grab=" file.txt ') do set "%%j" 

…这只是找到file.txt中包含“grab =”的行,并将其转换为一个变量%grab%

我不认识西德尔,但是你可能不得不用一个脱字符号来逃避封闭的括号和等号
空格是默认的分隔符,不需要指定。

 @Echo off Set grabber="C:\grabber.exe" for /f "usebackq" %%j in ( `%grabber% -s file.txt -e "extract($raw,'grab^=(.*^)',1^)"` ) do set grab=%%j