2015-12-30 4 views
4

Я пытаюсь удалить некоторую многословность из команды choco install в AppVeyor. Вот что я пытался (как это было предложено here):Перенаправление на «NUL» не удалось: FileStream не откроет устройства Win32

if (Test-Path "C:/ProgramData/chocolatey/bin/swig.exe") { 
    echo "using swig from cache" 
} else { 
    choco install swig > NUL 
} 

Однако он терпит неудачу с:

Redirection to 'NUL' failed: FileStream will not open Win32 devices such as 
disk partitions and tape drives. Avoid use of "\\.\" in the path. 
At line:4 char:5 
+  choco install swig > NUL 
+  ~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidOperation: (:) [], RuntimeException 
    + FullyQualifiedErrorId : RedirectionFailed 

Command executed with exception: Redirection to 'NUL' failed: FileStream will not open Win32 devices such as disk partitions and tape drives. Avoid use of "\\.\" in the path. 

Так что мой вопрос, есть ли способ подавить многословие команды choco install в PowerShell на AppVeyor ?

+5

'шоколадно установить SWIG> $ null' –

+2

http://stackoverflow.com/questions/5260125/whats-the-better-cleaner-way-to-ignore-output-in-powershell – beatcracker

+1

Бросив это там - вы должны добавить аргумент '-y', поскольку он может не завершить установку в зависимости от версии choco. – ferventcoder

ответ

6

nul - пакетный синтаксис. В PowerShell можно использовать вместо $null, а Матиас Р. Йенсен отметил в своем комментарии:

choco install swig > $null 

Других вариантов ТРУБОПРОВОДНЫХ в Out-Null командлет, собирая выход в переменном, или литье его void:

choco install swig | Out-Null 
$dummy = choco install swig 
[void](choco install swig) 
+1

Это не относится к оболочке. Это допустимое родное имя файла Win32 для устройства NUL. Но большая часть .NET не позволяет им. –

Смежные вопросы