2015-09-18 25 views
0

因此,由於最近在爲我工作的公司進行結構更改,我們在PC庫存上已經落後了很多。我知道如何在每臺計算機上單獨運行並導出爲CSV格式的文件,但這當然很耗時。我所尋找的是這樣的:用於在多臺機器上調用systeminfo的批處理文件

我需要的機器名或IP地址放到一個文本文件(pclist.txt) 我需要創建一個批處理文件中pclist.txt 到指定的電腦只能運行最後,我需要轉儲到一個文件

我在單臺計算機上使用的代碼信息是:

`systeminfo /s 'pcnameoriphere' /fo CSV >\Desktop\CurrentPC.csv` 

我怎麼會作出這樣的在多臺機器單臺機器代碼的工作?我知道有一種方法可以做到,但在我的生活中,我無法記住它,沒有任何我讀過的東西完全符合我的需要。任何幫助都很棒。提前致謝!

回答

1

從命令提示符,做

md "%userprofile%\Desktop\Inventory" 
for /f "usebackq delims=" %I in ("pclist.txt") do systeminfo /s %I /fo csv >"%userprofile%\desktop\inventory\%I.csv"` 

從批處理腳本,在%%跡象%%I翻倍。這也許可以通過運行systeminfo異步更快地得到結果,但我認爲你可能會要求在每次迭代這樣的批處理腳本:

批處理腳本:

@echo off 
setlocal 

md "%userprofile%\Desktop\Inventory" >NUL 2>NUL 
systeminfo /s %~1 /fo csv >"%userprofile%\desktop\inventory\%~1.csv" 

CMD提示:

for /f "usebackq delims=" %I in ("pclist.txt") do start /b batfile.bat %I 

試圖重定向由start /b啓動的命令的輸出會變得困惑。 >是否適用於start /b本身,或適用於start /b運行的命令? >應該逃脫嗎?

通過將重定向放入腳本中,遵循邏輯更加容易。然後,你打算和你認爲你打算做什麼之間沒有歧義。

+0

這似乎幾乎正是我所需要的。讓我進行一些測試,然後讓你知道。謝謝! – Brent

+0

絕對完美的執行,謝謝噸Rojo – Brent

相關問題