2016-07-27 2 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 Вы пытаетесь запросить несколько разных компьютеров в локальной сети, используя фиксированный набор пользовательских агентов? Или вы запрашиваете только один ПК с несколькими агентами для сравнения их результатов? В вашем ответе всегда добавляйте имя пользователя, чтобы задать вопрос. – 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 за ваш интерес!