2017-01-16 15 views
0

本質的には、現在コンピュータを使用しているユーザーを取得することです。私はうまく機能し、このコミュニティから以下のコードを持って...、"do"ごとに2つのバッチファイル/複数のコマンドを組み合わせる

::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

' for ... do command_1&command_2&... '、' for ... do( '+ _line-break_ +' command_1' + _line-break_ + 'command_2' + _line-break_ +' ... '+ _line-break_ +') ';これも参照してください:['for'](http://ss64.com/nt/for.html)。 – aschipfl

答えて

0

@ aschipflが推奨されています。 FORコマンドの使用方法については、FOR /?を参照してください。

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