如何调用表达式来调用带有变量的函数或脚本?



我收到此脚本的无效路径错误:

$buildZIP= 'starmatic'
echo $buildZIP
$command = ”\XXXXXXXXXXL$Gopi_Prod_AppToZipNew.ps1 $buildZIP”
Invoke-Expression -Command $command

这是ToZipNew.ps1

Param(
[Parameter(Position=1, Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$build
)
echo "$build"
$S = "L:Gopi_Prod_App$buildApp_Data*"
$D = "Gopi_Prod_AppStarmatic_UI.zip"
echo $S
echo $D
Get-ChildItem "$S" | Compress-Archive -DestinationPath "$D" -Verbose
#Compress-Archive -Path "$S" -CompressionLevel Fastest -DestinationPath "$D"

我得到的错误:

压缩存档:路径"L:\Gopi_Prod_App"不存在或不是 有效的文件系统路径。  在\\XXXXXXXXXX\L$\Gopi_Prod_App\ToZipNew.ps1:13字符:45 + ...t-子项"$S" |压缩存档 -目标路径 "$D" -详细 +                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  + 类别信息 : 无效参数: (L:\Gopi_Prod_App:字符串( [压缩存档], 无效操作异常  + 完全限定错误 ID:存档CmdletPathNotFound,压缩存档
Invoke-Expression

几乎总是你手头任何工作的错误工具。此外,在我看来,您实际上想在远程主机上运行脚本。但是,Invoke-Expression语句是从远程共享读取脚本并在本地执行它。

改变

$command = ”\XXXXXXXXXXL$Gopi_Prod_AppToZipNew.ps1 $buildZIP”
Invoke-Expression -Command $command

Invoke-Command -Computer 'XXXXXXXXXX' -ScriptBlock {
& 'L:Gopi_Prod_AppToZipNew.ps1' $using:buildZIP
}

在远程主机 XXXXXXXXXX 上运行脚本。

如果确实要在本地运行脚本,请将共享\XXXXXXXXXXL$作为网络驱动器L:连接,并从该驱动器调用脚本:

New-PSDrive -Name 'L' -PSProvider FileSystem -Root '\XXXXXXXXXXL$' -Persist
& 'L:Gopi_Prod_AppToZipNew.ps1' $buildZIP
Remove-PSDrive -Name 'L'

相关内容

  • 没有找到相关文章

最新更新