2016-11-29 167 views
1

我的任務是創建將註銷用戶放棄的會話的登錄腳本。我從Microsoft中發現了這個看起來很有希望的開始。從批處理文件中的文本文件中過濾行

我修改了微軟的腳本,現在已經有了。

query session %username% >session.txt 
for /f "skip=1 tokens=3," %%i in (session.txt) DO logoff %%i 
del session.txt 

這會生成如下所示的session.txt。

SESSIONNAME  USERNAME     ID STATE TYPE  DEVICE 
rdp-tcp#66  someuser     3 Active      
>rdp-tcp#67  someuser     12 Active      

我的腳本當前跳過第一行,解析剩餘的兩行並通過ID註銷會話。我想改變這種行爲,使得我只註銷放棄的會話(3)而不是我當前的會話(12)。我可以識別並過濾包含>的行嗎?

回答

3

您不需要日誌文件。這隻會減慢你的腳本:

for /f "skip=1 tokens=3 eol=>" %%a in ('query session %username%') do set "sessionToKill=%%a" 
echo %sessionToKill% 

eol=>將跳過每行開頭>。您可以將註銷邏輯直接放在for循環中,而不是set

+0

fyi,我打了Mofi [here](http://chat.stackoverflow.com/transcript/message/34395679#34395679),他正在幫忙進行一些清理工作。此評論在一段時間後自動刪除。 – Drew

相關問題