2017-04-18 51 views
0

我試圖從下面的Windows命令捕獲輸出的前4個字符。捕獲Windows命令行輸出的前4個字符到變量

nltest /server:%COMPUTERNAME% /dsgetsite 

什麼是正常返回的結果是:

SITEAdSiteName 
This command completed successfully. 

我使用for /F命令嘗試,但似乎無法找出如何剝離一切,除了什麼是第4個字符回。

我在想使用for /F可能不是實現此目標的最佳方法。

有沒有其他建議,我如何做到這一點?

我認爲我的挑戰是定義(或不​​)定界符是任何角色,我試過*,但似乎沒有爲我做。

當我使用這個:

for /F "tokens=1-4 delims=*" %A in ('nltest /server:%COMPUTERNAME% /dsgetsite') DO echo %A 

我得到兩個輸出線,這裏有點難倒。

+0

您是否堅持直接從提示符使用命令,或者您是否在尋找批處理文件?你只需要第一行的前4個字符,最後一行或每行? – Magoo

回答

2

要存儲的nltest /server:%COMPUTERNAME% /DSGETSITE在可變LINE輸出的第一行中,使用下面的命令行(使用%%F代替%F在批處理文件中使用此):

set "LINE=" & for /F %F in ('nltest /server:%COMPUTERNAME% /DSGETSITE') do if not defined LINE set "LINE=%F" 

要返回前四個字符,使用sub-string expansion

set "LINE=%LINE:~,4%" 
echo %LINE% 
相關問題