将命令的结果保存在变量中,Windows batch
Save the result of a command in variable, Windows batch
我正在尝试编写一个批处理脚本,将命令的结果保存在一个变量中。所以我可以稍后使用它。
例如,我正在尝试 运行 在脚本中这样做:
sc queryex "Service" |find /i "pid"
但我想将这个结果保存在一个变量中。
set PIDRS=sc queryex "Themes" |find /i "pid"
ECHO "%PIDRS%
有什么想法吗?
for /f "tokens=* delims=" %%# in ('sc queryex "Themes" ^|find /i "pid"') do set "PIDRS=%%#"
echo %PIDRS%
这会将整行设置为 PIDRS
以下是仅获取 pid 的方法:
@echo off
set "rspid="
for /f "skip=9 tokens=2 delims=:" %%# in ('sc queryex "Themes"') do (
if not defined rspid set /a rspid=%%#
)
第二个不使用额外的 FIND,理论上应该会更快。
我正在尝试编写一个批处理脚本,将命令的结果保存在一个变量中。所以我可以稍后使用它。
例如,我正在尝试 运行 在脚本中这样做: sc queryex "Service" |find /i "pid"
但我想将这个结果保存在一个变量中。
set PIDRS=sc queryex "Themes" |find /i "pid"
ECHO "%PIDRS%
有什么想法吗?
for /f "tokens=* delims=" %%# in ('sc queryex "Themes" ^|find /i "pid"') do set "PIDRS=%%#"
echo %PIDRS%
这会将整行设置为 PIDRS
以下是仅获取 pid 的方法:
@echo off
set "rspid="
for /f "skip=9 tokens=2 delims=:" %%# in ('sc queryex "Themes"') do (
if not defined rspid set /a rspid=%%#
)
第二个不使用额外的 FIND,理论上应该会更快。