1

現在、コンピューター名のリストを読み取り、これらのそれぞれに ping を実行し、コンピューター名と IP アドレスを含む csv ファイルに応答するものを出力するバッチ ファイルがあります。

これを編集して、マシンのユーザーも確認する必要があります。オンラインのユーザーに連絡して、コンピューターで行う作業を手配する必要があります。バッチ ファイルには 100 台以上のマシンが含まれている可能性があるため、各ユーザーを手動で見つけるには時間がかかります。これを行う方法はありますか?

`IF EXIST C:\test\new.csv (del C:\test\new.csv)
 IF EXIST C:\test\final.csv (del C:\test\final.csv)
 set ComputerList=C:\test\ClientList.txt
 Echo Computer Name,IP Address>Final.csv
 setlocal enabledelayedexpansion
 echo please wait...
 for /f "usebackq tokens=*" %%A in ("%ComputerList%") do (
 for /f "tokens=3" %%B in ('ping -n 1 -l 1 %%A ^|findstr Reply') do (
 set IPadd=%%B
 echo %%A,!IPadd:~0,-1!>>final.csv
 )
 )
 findstr /V "IPAddress" final.csv >> C:\test\new.csv
 echo identified machines for Install
 start excel C:\test\new.csv
 echo opened csv file`

ユーザー名を取得するために使用したいコマンドは次のとおりです。

 `wmic.exe /NODE: %%A COMPUTERSYSTEM GET USERNAME`

ありがとうマーク

4

2 に答える 2

0

以下のコードは、2 つのファイルの行数を順番にカウントし、変数SalaryCountおよびに設定されますTaxCount

@ECHO OFF    
echo Process started, please wait...    
for /f %%C in ('Find /V /C "" ^< "D:\Trial\Salary.txt"') do set SalaryCount=%%C    
echo Salary,%SalaryCount%
for /f %%C in ('Find /V /C "" ^< "D:\Trial\Tax.txt"') do set TaxCount=%%C
echo Tax,%TaxCount%

これらの値を csv ファイルに出力する必要がある場合は、以下のコードを使用できます。

@ECHO OFF
cd "D:\CSVOutputPath\"
echo Process started, please wait...
echo FILENAME,FILECOUNT> SUMMARY.csv
for /f %%C in ('Find /V /C "" ^< "D:\Trial\Salary.txt"') do set Count=%%C
echo Salary,%Count%>> SUMMARY.csv
for /f %%C in ('Find /V /C "" ^< "D:\Trial\Tax.txt"') do set Count=%%C
echo Tax,%Count%>> SUMMARY.csv

はファイルの既存の>内容を上書きし>>、新しいデータを既存のデータに追加します。CSV はD:\CSVOutputPathに生成されます

于 2016-09-03T11:07:09.217 に答える