По сути, я хочу получить пользователя, который в настоящее время использует компьютер. Я получил следующий код из этого сообщества, которое работает хорошо ...,Сочетание двух пакетных файлов/«делать» с более чем одной командой на «делать»
::Batch 1
@echo off
for /f %%a in (output1.txt) do WMIC /NODE:%%a computersystem GET name, username
do echo %%r >> output2.txt
..., за исключением того, что мои имена компьютеров имеют дефис в них и не могут быть использованы.
Чтобы обойти это, я запускаю ниже код (также получил это здесь, спасибо еще раз!) Для получения IP-адреса первого:
::Batch 2
@echo off
for /f %%a in (hosts.txt) do call :process %%a
goto :eof
:process
set hostname=%1
for /f "tokens=4 delims=: " %%r in ('ping -n 1 %hostname%^|find /i "Statistics"') do echo %%r >> output2.txt
Я тогда кормить эту информацию в первый пакетный файл выше, чтобы получить имена хостов.
Поэтому в основном я кладу на имя хоста текстовый файл с именем Hosts.txt, запустите пакет 2, а затем запустить пакетный 1.
Я пробовал много дней, чтобы объединить оба, но не могу показаться, чтобы понять это ,
Вы можете использовать синтаксис 'for ..... do (echo 1 echo 2), чтобы делать больше вещей одновременно. Если вы выберете тот, пожалуйста, найдите ключевые слова 'DelayedExpansion' :) – geisterfurz007
Либо сделайте' for ... do command_1 & command_2 & ... ', либо' for ... do ('+ _line-break_ +' command_1' + _line-break_ + 'command_2' + _line-break_ +' ... '+ _line-break_ +') '; см. также: ['for'] (http://ss64.com/nt/for.html). – aschipfl