Powershell 重定向到';NUL';失败:FileStream将不会打开Win32设备

Powershell 重定向到';NUL';失败:FileStream将不会打开Win32设备,powershell,chocolatey,appveyor,Powershell,Chocolatey,Appveyor,我正试图从AppVeyor中的choco install命令中删除一些冗长的内容。以下是我一直在尝试的(如建议的): 但是,它在以下方面失败: 重定向到“NUL”失败:FileStream将不会打开Win32设备,例如 磁盘分区和磁带驱动器。避免在路径中使用“\\.\”。 第4行字符:5 +choco安装开关>NUL + ~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:InvalidOperation:(:)[],运行时异常 +FullyQualifiedE

我正试图从AppVeyor中的
choco install
命令中删除一些冗长的内容。以下是我一直在尝试的(如建议的):

但是,它在以下方面失败:

重定向到“NUL”失败:FileStream将不会打开Win32设备,例如
磁盘分区和磁带驱动器。避免在路径中使用“\\.\”。
第4行字符:5
+choco安装开关>NUL
+     ~~~~~~~~~~~~~~~~~~~~~~~~
+CategoryInfo:InvalidOperation:(:)[],运行时异常
+FullyQualifiedErrorId:重定向失败
执行命令时出现异常:重定向到“NUL”失败:FileStream将不会打开Win32设备,如磁盘分区和磁带机。避免在路径中使用“\\.\”。

因此,我的问题是,有没有一种方法可以抑制AppVeyor上PowerShell中的
choco install
命令的冗长性?

nul
是批处理语法。在PowerShell中,您可以使用
$null
,正如Mathias R.Jessen在其评论中指出的:

choco install swig > $null
其他选项包括管道导入
Out Null
cmdlet、在变量中收集输出或将其强制转换为
void

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

choco install swig>$null
抛出此选项-您应该在参数中添加
-y
,因为根据choco的版本,它可能无法完成安装。它不是特定于shell的。它是
NUL
设备的有效本机Win32文件名。但大多数.NET都不允许这样做。
choco install swig | Out-Null
$dummy = choco install swig
[void](choco install swig)