Tag: 启动作业

使用脚本的参数调用第二个脚本

我相对较新的PowerShell,并有一个脚本,读取configuration文件,导致一组名称值对,我想作为parameter passing给另一个PowerShell脚本中的函数。 我不知道在devise时将在这个configuration文件中放置什么参数,所以在我需要调用第二个PowerShell脚本的时候,我基本上只有一个variables,它有第二个脚本的path,第二个脚本该variables是传递给pathvariables中标识的脚本的参数数组。 所以包含第二个脚本path($ scriptPath)的variables可能具有如下的值: "c:\the\path\to\the\second\script.ps1" 包含参数($ argumentList)的variables可能如下所示: -ConfigFilename "doohickey.txt" -RootDirectory "c:\some\kind\of\path" -Max 11 我如何从这种状态中获得$ argumentList的所有参数来执行script.ps1? 我希望这个第二个脚本的任何写入主机命令对于第一个脚本被调用的控制台是可见的。 我已经尝试了点源,Invoke-Command,Invoke-Expression和Start-Job,但是我还没有find一种不会产生错误的方法。 例如,我认为最简单的第一条路线是尝试开始工作,如下所示: Start-Job -FilePath $scriptPath -ArgumentList $argumentList …但是这个失败,这个错误: System.Management.Automation.ValidationMetadataException: Attribute cannot be added because it would cause the variable ConfigFilename with value -ConfigFilename to become invalid. …在这种情况下,“ConfigFilename”是由第二个脚本定义的参数列表中的第一个参数,我的调用显然试图将其值设置为“-ConfigFilename”,显然是为了通过名称来标识参数,没有设定它的价值。 我错过了什么? 编辑: 好的,这是一个名为invokee.ps1的文件,即将被称为脚本的模型 Param( [parameter(Mandatory=$true)] [alias("rc")] [string] [ValidateScript( {Test-Path $_ -PathType […]