2013-05-14 2 views
1
$computers = Get-Content -Path C:\output\output.txt 
$output = '\\PCname\c$\output\' 
$output1 = '.txt' 
($output2 =$output+$computers+$output1) 
msinfo32.exe /report $output2 /computer $computer 

Что я получаю является msinfo32.exe/отчет $ output2/компьютер $ компьютер считывает первый PCNAME и только это имя и писать имя файла каждый PCname имеет пробел между каждым из них. Извините за то, что, похоже, будет простым вопросом, я просто начал использовать PS.Powershell получить-содержимое текстового файла и заберите запустить MSINFO32.EXE

Thanks

ответ

1

У вас здесь две проблемы.

  1. Чтобы правильно соединить строки в пути, вам нужно использовать Join-Path
  2. Вы получаете только первое имя компьютера, потому что вы не перекручивание через список компьютеров.

Быстрая & грязная версия (предполагается, что каждое имя компьютера по своей собственной линии в output.txt)

$computers = Get-Content -Path C:\output\output.txt; 
$output = '\\PCname\c$\output\'; 
$output1 = '.txt'; 
$computers | foreach-object { 
    $output2 = (join-path -path $output -childpath $_) + ".txt"; 
    msinfo32.exe /report $output2 /computer $_; 
} 
Смежные вопросы