本帖最后由 lonron 于 2023-5-8 10:20 编辑
- for /f delims^=^"^ tokens^=2 %%i in ('wmic process where name^="cmd.exe" get commandline 2^>nul ^| find "test.bat"') do echo %%i
复制代码 原意是想通过定位 test.bat 所在文件位置,实现将该路径赋值给某个变量。
所以我想到的是利用 wmic 查找 test.bat 在进程中的信息,并用 for /f 截取所需的路径字段来实现这个目的。但是实际测试会出现如下回显结果。- C:\Users\[用户名]>for /f delims^=^"^ tokens^=2 %i in ('wmic process where name^="cmd.exe" get commandline 2^>nul ^| find "test.bat"') do echo %i
-
- C:\Users\[用户名]>echo cmd.exe
- cmd.exe
复制代码 绿色部分实际应该是把 wmic process where name^="cmd.exe" get commandline 2^>nul ^| find "test.bat" 这段也当文本识别了,所以根据 for /f 的参数截取到了 cmd.exe(红色部分)。
这种情况该如何解决,或者有没有其他平替方式可以实现原意目的也行。 |