正如标题所说,我试图从 FIND 命令中获取输出并将其保存到一个变量中。具体来说,我正在使用:
DIR /b /s "C:\" | FIND "someexe.exe"
Run Code Online (Sandbox Code Playgroud)
找到一个特定的 .exe 文件,它似乎工作正常,但随后我想保存 FIND 的结果以供稍后在同一脚本中使用。
我尝试了各种不同的调整:
for /f "usebackq" %%i in (`DIR /b /s "C:\" | FIND "someexe.exe"`) do SET foobar=%%i
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行脚本时,命令窗口立即关闭(大概是由于某些错误,我尝试在下一行放置一个 PAUSE 命令但无济于事)。
我认为这是我做错的一些愚蠢的小事,但如果有人能告诉我它是什么,我会很感激。仅供参考,我不在乎存在多少个“someexe.exe”副本,我只需要其中一个的路径。
我有一个在命令行中完美运行的单行代码段,但在我作为批处理脚本的一部分运行时失败并引发错误.
以下命令按预期运行,删除文件夹中的所有空子文件夹.
for /f "delims=" %d in ('dir /s /b /ad ^| sort /r') do rd "%d"
Run Code Online (Sandbox Code Playgroud)
但是,当放入批处理文件时...
FOR /f "delims=" %%d in ('dir /s /b /ad ^| sort /r') do rd "%%d"
Run Code Online (Sandbox Code Playgroud)
...它抛出了标准错误:
排序不被识别为内部或外部命令
我一直在尝试了一个小时左右,有和没有逃脱管,改变的选项的顺序,查找两者的文件dir和sort等等,但我还是没能弄清楚这是怎么回事这里.批处理文件的其余部分(只有几行)工作正常,这是其中唯一失败的行.
有人可以帮忙吗?