FOR /F "tokens=3 delims= " %i IN (query session | FINDSTR /i "console") DO set "ID=%i"
我收到一個錯誤 | was unexpected at this time.
uj5u.com熱心網友回復:
要避免兩個非常簡單的錯誤。
首先閱讀For /?使用“單引號”作為命令。
其次^escape the |
FOR /F "tokens=3 delims= " %i IN ('query session ^| FINDSTR /i "console"') DO set "ID=%i"
@aschipfl 在評論中提到的提醒在批處理檔案或 file.cmd 中使用雙倍的 %%

uj5u.com熱心網友回復:
在使用命令實用程式之前,您應該始終閱讀它的使用資訊。如果您這樣做了,您會注意到,當您專門嘗試使用會話名稱隔離一行時console,您可以使用query session console而不是不太健壯的query session | FINDSTR /i "console". 當然,使用更合適的命令意味著您對水平條(pipe)沒有任何問題。
如果您愿意,您也可以skip使用第一行(header),如果您確定您的 ID 將始終是第三個空格分隔的標記,那么您可以使用:
在命令提示符下,(命令):
For /F "Skip=1 Tokens=3" %G In ('%SystemRoot%\System32\query.exe Session Console 2^>NUL') Do @Set "ID=%G"
或從批處理檔案中,(批處理檔案):
@For /F "Skip=1 Tokens=3" %%G In ('%SystemRoot%\System32\query.exe Session Console 2^>NUL') Do @Set "ID=%%G"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408646.html
標籤:
上一篇:for回圈和while回圈比較
