我需要过滤特定的列,该列在CMD中用引号分隔。有谁知道怎么做吗?
我知道有这样的事情
for /f "tokens=1 delims=." %%a in ("%VARIABLE%") do (
echo %%a
)
但是如果分隔符是引号,这个命令就不能用了... 例如这里:
BINARY_PATH_NAME : "C:\Program Files\Application\Application.exe" -c "C:\Program Files\Application\Application.conf" -f=false
我需要过滤应用程序exe文件的路径和应用程序conf文件的路径...
提前谢谢您
详细提到了
对于您暗示和显示的任务,我不太确定您是否特别需要使用双引号作为分隔符进行过滤。我这样说的原因是您假设双引号始终存在于字符串中,如果文件不存在于使用问题字符的位置,则情况可能并非如此。
因此,我建议您使用两个已知信息(即文件扩展名)进行过滤。
批处理文件示例,(假设您的源数据是
qc
的 sc.exe
选项的结果,根据需要更改 ServiceName
):
@For /F "Tokens=1,2,*" %%G In ('%SystemRoot%\System32\sc.exe qc ServiceName
2^>NUL') Do @If "%%G" == "BINARY_PATH_NAME" For %%J In (%%I
) Do @If /I "%%~xJ" == ".exe" (Echo Application path is: %%~J
) Else If /I "%%~xJ" == ".conf" Echo Configuration file path is: %%~J
或者直接在cmd.exe中:
For /F "Tokens=1,2,*" %G In ('%SystemRoot%\System32\sc.exe qc ServiceName 2^>NUL') Do @If "%G" == "BINARY_PATH_NAME" For %J In (%I) Do @If /I "%~xJ" == ".exe" (Echo Application path is: %~J) Else If /I "%~xJ" == ".conf" Echo Configuration file path is: %~J