2017-01-16 52 views
0

基本上我想要的是讓用戶當前正在使用的計算機。我從這個社區得到了以下代碼,效果很好,...結合兩個批處理文件/「做」每個「做」多個命令

::Batch 1  

@echo off 

for /f %%a in (output1.txt) do WMIC /NODE:%%a computersystem GET name, username 

do echo %%r >> output2.txt 

...,除了我的計算機名稱中有連字符並且無法使用。

爲了規避這一點,我(也再次得到了這個這裏,謝謝!)運行下面的代碼首先檢索該IP地址:

::Batch 2 

@echo off 

for /f %%a in (hosts.txt) do call :process %%a 

goto :eof 


:process 

set hostname=%1 

for /f "tokens=4 delims=: " %%r in ('ping -n 1 %hostname%^|find /i "Statistics"') do echo %%r >> output2.txt 

然後我將該信息向第一批文件之上,以獲得主機名。

所以基本上我把我的主機名命名HOSTS.TXT一個txt文件,運行批處理2,然後運行批處理1

我試過很多天到兩個結合,但不能似乎弄明白。

+0

您可以使用'for ..... do(echo 1 echo 2)語法一次執行更多操作。如果你選擇那個,請搜索關鍵字'DelayedExpansion' :) – geisterfurz007

+0

要麼執行'...做command_1&command_2&...',要麼執行...('+ _line-break_ +'command_1' + _line-break_ +'command_2' + _line-break_ +'...'+ _line-break_ +')';另請參閱:['for'](http://ss64.com/nt/for.html)。 – aschipfl

回答

0

As @aschipfl建議。使用FOR /?可查看有關使用FOR命令的信息。

for /f %%a in (output1.txt) do (
    WMIC /NODE:%%a computersystem GET name, username 
    ECHO right here 
) 
相關問題