从一个批处理文件进行解析的格式version=value
的:
@For /F "UseBackQ Skip=1 Delims=" %%A In (`WMIC DataFile Where "Name='C:\\Program Files (x86)\\App\\name.exe'" Get Version`) Do @For /F "Tokens=*" %%B In ("%%~A") Do @Set "pver=%%B"
或者在较短的线:
@Echo Off
For /F "UseBackQ Skip=1 Delims=" %%A In (`WMIC DataFile Where^
"Name='C:\\Program Files (x86)\\App\\name.exe'" Get Version
`) Do For /F "Tokens=*" %%B In ("%%~A") Do Set "pver=%%B"
从命令line:
For /F "UseBackQ Skip=1 Delims=" %A In (`WMIC DataFile Where "Name='C:\\Program Files (x86)\\App\\name.exe'" Get Version`) Do @For /F "Tokens=*" %B In ("%~A") Do @Set "pver=%B"
在这两种情况下,请注意WMIC将traili用固定宽度的空间填充输出。之后你可能需要处理它们。
像这样也许:
@Echo Off
For /F "UseBackQ Skip=1 Delims=" %%A In (`WMIC DataFile Where^
"Name='C:\\Program Files (x86)\\App\\name.exe'" Get Version
`) Do For /F "Tokens=*" %%B In ("%%~A") Do Call :Sub %%B
Echo %pver%
Pause
Exit/B
:Sub
Set "pver=%*"
你声称使用批处理file'代码',但是你用命令行的语法。在批处理文件中将每个“%a”更改为“%% a”。 – Stephan
我会试着让'wmic'命令行工作在'/ F'周围前......' – aschipfl