2015-10-19 414 views
2

我正在尝试编写一个批处理脚本,将命令的结果保存在变量中。所以我可以稍后使用它。将命令的结果保存在变量中,Windows批处理

例如,我试着在脚本运行此: SC queryex“服务” |找到/我“PID”

,但我想这个结果保存在变量。

set PIDRS=sc queryex "Themes" |find /i "pid" 
ECHO "%PIDRS% 

任何想法?

+0

看看这里... http://ss64.com/nt/for_cmd.html –

+0

http://stackoverflow.com/questions/108439/how-do-i-get-the-result-在一个可变窗口中的命令 – npocmaka

回答

2
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这在理论上应该使其更快。

+3

'skip = 9'失败,导致一个停止的服务,导致'缺少操作数'错误。我会使用(来自命令行)'for/F'tokens = 1 * delims =:“%#in('sc queryex”Themes'')do @if/I“%#”==“PID”set /一个“rspid =%$”' – JosefZ

+0

你将如何在其他命令中使用该pid? –

+0

@eranotzap它将被分配给变量'rspid'.You可以通过'%rspid%'得到它的值' – npocmaka

相关问题