Powershell Du.exe Ошибка - PullRequest
       3

Powershell Du.exe Ошибка

2 голосов
/ 18 февраля 2011

Я использую DU.exe в скрипте Powershell для записи размера удаленной папки, код как показано ниже:

$Duexe ="c:\du\du.exe"

$unc = "\\$server\$Letter$\$Name"

write-host "Processing:  " $unc

$stuff =  du -q "\\$server\$Letter$\$Name" 2>&1 

$formated = $stuff | Format-Table -auto

write-host $stuff

Я должен перенаправить stderror, чтобы остановить ошибку, вызванную переключателем «-q». Однако вывод содержит следующую ошибку:

System.Management.Automation.RemoteException

In context:

Files:        290215 Directories:  2246 Size:         128,529,542,967 bytes Size on disk: 128,529,542,967 bytes  System.Management.Automation.RemoteException 

Почему это? Если я запускаю du outside powershell, я не получаю ошибок по тем же unc-путям.

Ответы [ 2 ]

2 голосов
/ 18 февраля 2011

Вы не столько остановили ошибку, сколько "перенаправили" ошибку в выходной поток, который вы захватили в переменной $stuff.Попробуйте перенаправить только поток ошибок на $null, чтобы игнорировать его:

$stuff =  du -q "\\$server\$Letter$\$Name" 2> $null

$stuff | Format-Table -auto

Кстати, вам не нужно записывать-хостировать "отформатированные" вещи.Format-Table будет выводиться на хост автоматически.

1 голос
/ 18 февраля 2011

Вы не перенаправляете вывод в Powershell с пакетным стилем >.Просто используйте $stuff = du -q $unc, чтобы получить вывод du в переменную.

Кстати, вы печатаете $stuff, но устанавливаете форматированное содержимое в $formated.Это предназначено?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...