(无效)命令New-NetIPAddress -InterfaceAlias Ethernet0 -IPAddress 172.1.2.3 -PrefixLengh 27
会产生以下错误:
New-NetIPAddress : A parameter cannot be found that matches parameter name 'PrefixLengh'.
At line:1 char:65
+ ... ddress -InterfaceAlias Ethernet0 -IPAddress 172.1.2.3 -PrefixLengh 27
+ ~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [New-NetIPAddress], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,New-NetIPAddress
我想将此错误消息重定向到文件。
通常,这应该像这样工作:New-NetIPAddress -InterfaceAlias Ethernet0 -IPAddress 172.1.2.3 -PrefixLengh 27 2>&1 > output
我尝试了很多组合,例如*> out
, 2>&1 3>&1 4>&1 5>&1 6>&1 > out
,但没有一个组合重定向输出。它总是被打印到屏幕上并且文件保持为空。PS版本:5.1.22621.2506
(Windows 11 上最新的 powershell)。
如何正确地将此错误输出重定向到文件?
ParameterBindingException是一个语句终止错误,在这种情况下您无法重定向它。您需要使用
try
\catch
语句。有关 PowerShell 中错误处理的深入详细信息,请参阅您想了解的有关异常的一切。关于后续评论,是否有办法在没有
try
\ 的情况下做到这一点catch
。答案是肯定的,这取决于情况,在这种情况下,您可以将语句包装在脚本块中并在同一语句中调用它。这将允许重定向。然而值得注意的是,这并不总是有效,即在throw
.