Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将cmd行参数传递给powershell脚本-如果没有参数,如何退出_Arrays_Powershell_If Statement_Cmd_Powershell 2.0 - Fatal编程技术网

Arrays 将cmd行参数传递给powershell脚本-如果没有参数,如何退出

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

到目前为止,我已经有了这个.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秒 } 写入输出完成。 }
我将第二行更改为if$appPoolArray-eq$null{,因为它更清楚地显示了您的意图,但您的原始声明也会起作用。

谢谢!我尝试删除了强制值=$True,但仍然不起作用,我甚至没有意识到我错过了开头的括号。我感谢您的帮助。