Arrays 将cmd行参数传递给powershell脚本-如果没有参数,如何退出
到目前为止,我已经有了这个.ps1文件 Param[ParameterMandatory=$true,ValueFromPipelin=$true][string[]]$appPoolArray $0=0 如果$appPoolArray.length-等式$0{ 写入输出未选择任何应用程序池 出口 } 否则{ $appPoolArray中的foreach$elem $appPool=Get wmioobject-namespace root\MicrosoftIISv2-class IIsApplicationPool |其中对象{$\ ux.Name-eq W3SVC/APPPOOLS/$elem} $appPool.Recycle 循环写入输出。 开始睡眠-60秒 } 写入输出完成。 } 我想这样做,如果cmd行中没有参数,那么它会立即退出,相反,如果我没有在命令中包含参数,它只会要求我继续向数组中添加元素。我在cmd行中运行的命令是powershell-noexit path\script.ps1我对powershell或脚本不太熟悉,但我知道错误出在if语句中。我们将不胜感激 编辑:我尝试去掉Write Mandatory=$True,但现在当我没有传递任何参数时,它会给我一个错误去掉Mandatory=$True并在foreach的末尾添加一个缺少的大括号。。线将来使用缩进和格式化代码,因为您会发现更容易发现这些错误或使用PowerGUI之类的工具 Param[ParameterValueFromPipeline=$true][string[]]$appPoolArray 如果$appPoolArray-eq$null{ 写入输出未选择任何应用程序池 } 否则{ $appPoolArray中的foreach$elem{ $appPool=Get wmioobject-namespace root\MicrosoftIISv2-class IIsApplicationPool |其中对象{$\ ux.Name-eq W3SVC/APPPOOLS/$elem} $appPool.Recycle 循环写入输出。 开始睡眠-60秒 } 写入输出完成。 }Arrays 将cmd行参数传递给powershell脚本-如果没有参数,如何退出,arrays,powershell,if-statement,cmd,powershell-2.0,Arrays,Powershell,If Statement,Cmd,Powershell 2.0,到目前为止,我已经有了这个.ps1文件 Param[ParameterMandatory=$true,ValueFromPipelin=$true][string[]]$appPoolArray $0=0 如果$appPoolArray.length-等式$0{ 写入输出未选择任何应用程序池 出口 } 否则{ $appPoolArray中的foreach$elem $appPool=Get wmioobject-namespace root\MicrosoftIISv2-class IIsApp
我将第二行更改为if$appPoolArray-eq$null{,因为它更清楚地显示了您的意图,但您的原始声明也会起作用。谢谢!我尝试删除了强制值=$True,但仍然不起作用,我甚至没有意识到我错过了开头的括号。我感谢您的帮助。