2015-10-19 410 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

相關問題