grep.exe必须位于当前目录中才能使以下命令起作用:
FOR /F tokens^=4^ delims^=^" %%A IN ('grep.exe -o -P -m 1 "name=\"securitytoken\" value=\".*?\"" "forum_post_edit.html"') DO SET "securitytoken=%%A"
ECHO %securitytoken%
我尝试在双引号之间封装grep.exe的路径,例如“bin / grep.exe”,但这搞砸了代码的语法。
现在我可以使用pushd和popd临时切换到grep.exe所在的另一个目录,但这会影响forum_post_edit.html
我该如何解决这个问题?
答案 0 :(得分:2)
在@ Mofi上面的评论的基础上,您可以使用以下命令提取grep.exe
的短名称:
FOR /F %%A IN ("grep.exe") DO SET GrepPath=%%~fs$PATH:A
现在您可以在命令中引用短路径:
FOR /F tokens^=4^ delims^=^" %%A IN ('%GrepPath% -o -P -m 1 "name=\"securitytoken\" value=\".*?\"" "forum_post_edit.html"') DO SET "securitytoken=%%A"
ECHO %securitytoken%
注意:grep.exe
需要位于系统%PATH%
目录中定义的文件夹中才能生效。