自从我完成 Windows 批处理文件以来已经有一段时间了,我似乎忘记了一切。我想要做的是寻找路径有空格但字符串没有被引用的服务。男孩,使用 bash 会很容易,但是......
因此,简而言之,我首先将其sc query | findstr SERVICE_NAME
转储到临时文件中。然后我将它读回一个变量,for /F "tokens=2" %%f in (temp_file) do set services=!services! %%f
这让我得到一个变量,其中包含我主机上所有服务的空格分隔列表。现在,在针对该变量的 FOR 循环中,我运行 sc qc %%s | findstr BINARY_PATH_NAME
并将其转储到临时文件中。它最终包含类似的内容(引号是我的以保留所有空格):
" BINARY_PATH_NAME : C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted"
我一直在阅读、谷歌搜索、测试和尝试一切,试图最终削减输出,:
这样我就可以结束路径本身,然后开始找出在 Windows 下必须是正则表达式的可恶。但我就是无法拆分字符串。