2016-07-27 41 views
-1

使用一些命令,我​​可以從特定代理獲取信息。例如操作系統,體系結構和版本。在一個文件中批量連接結果

在Windows中,我希望在代理列表(resources.txt)中輸入每個結果的文件。

,我希望得到的結果是一個簡單的txt,如:

Agent agentName - osName - osArch - osVersion 
Agent agentName - osName - osArch - osVersion 
Agent agentName - osName - osArch - osVersion 
Agent agentName - osName - osArch - osVersion 

但我想不出如何做到這一點。

在我的測試我使用下面的

@echo off 
setlocal enabledelayedexpansion EnableExtensions 

set resources=c:\resources.txt 
set OS=C:\OS.txt 
set arch=C:\arch.txt 
set version=C:\version.txt 

for /F "tokens=1" %%a in (%resources%) do (


echo --------------------- >> %OS% 
echo|set /p=Resource: %%a - >> %OS% - >> %arch% - >> %version% 

C:\command_to_run_and_get_OS_result %%a >> %OS% 
C:\command_to_run_and_get_arch_result %%a >> %arch% 
C:\command_to_run_and_get_version_result %%a >> %version% 
) 

但與任何success.-

你能幫助我嗎?

謝謝!

+4

你的問題很不清楚。你是什​​麼意思? 'resources.txt'中有什麼? –

+0

@Emiliano Sturniolo您是否嘗試使用一組固定的用戶代理查詢局域網上的多臺不同計算機?或者,您是否只用一個代理來查詢一臺PC來比較其結果?在你的回覆中,總是添加用戶名來尋呼提問者。 – sambul35

+0

@ sambul35是的。我想用一個特殊應用程序的內部命令查詢局域網上的不同計算機。 –

回答

0

我正在回答我自己爲此發佈解決方案。 一位同事對我表現出一些憐憫,給我這個解決方案。

@echo off 
setlocal enabledelayedexpansion EnableExtensions 

set resources=c:\resources.txt 
set out=C:\out.txt 

for /F "tokens=1" %%a in (%resources%) do ( 

rem >> %version% -name sys.os.version 

for /F "tokens=1" %%a in ('C:\command_to_run_and_get_OS_result %%a') do (set os=%%a) 
for /F "tokens=1" %%a in ('C:\command_to_run_and_get_arch_result %%a') do (set arch=%%a) 
for /F "tokens=1" %%a in ('C:\command_to_run_and_get_version_result %%a') do (set ver=%%a) 

          echo %%a ^| !os! ^| !arch! ^| !ver! >> %out% 

所以,有了這個代碼,我可以得到下面的結果

agentName | osName | osArch | osVersion 
agentName | osName | osArch | osVersion 
agentName | osName | osArch | osVersion 
agentName | osName | osArch | osVersion 
agentName | osName | osArch | osVersion 

感謝@ sambul35和@MarkSetchell您的關注!

相關問題