Powershell:从其他PS脚本中调用的Powershell脚本获取返回结果

Eva*_*man 6 powershell return-value visual-studio-2010

背景: 我有一个PowerShell脚本:script1这需要一个sourceDirectory和两个目的地(叫他们dest1Directorydest2Directory).

sourceDirectory的结构如下:

\来源\ DEST1\STUFF1

\来源\ dest2\STUFF2

script1调用另一个脚本:script2,foreachSTUFF(所以script2可以运行例如10次),从而提供script2了必要的目的地参数,它创建所有的内容"东西"的备份正在取代dest1Directorydest2Directory,然后将所有的STUFF拷贝到相应的目的地.

Script1:

foreach ($folder in $STUFF1)
{           
& $script2 -stuffParameter $folder -destDrive $dest1Directory -backUpDrive $BackUpDirectory
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是:

我是script1从一个visual studio网站打电话,想script2输出它创建的所有备份目录路径,所以我稍后会引用它们.我试过这个script2:

$returnRollBackObj = New-Object Object
Add-Member -memberType NoteProperty -name "RollBackLocation" -value $folderobj -inputObject $returnRollBackObj
return $returnRollBackObj
Run Code Online (Sandbox Code Playgroud)

但它似乎没有返回对象,因为它们是下标调用.我不知道如何返回未定义数量的这些对象,script1所以我不知所措.有人可以帮我吗?

man*_*lds 11

Powershell中返回任何未捕获的输出.

所以像

return $returnRollBackObj
Run Code Online (Sandbox Code Playgroud)

相当于

$returnRollBackObj
return
Run Code Online (Sandbox Code Playgroud)

因此,由于script2正在返回这些对象,只要这些对象没有在script1中捕获,它们也将由script1返回.所以你不必做任何关于"返回未定义数量的对象"的事情

尝试首先从控制台运行脚本,以查看是否获得了预期的行为.