2016-07-27 39 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您的关注!

相关问题