我有一个旧脚本,在某些情况下会使用一些额外的参数来调用自身。如果通过常规的Powershell窗口运行,这将起作用
$spath = $script:MyInvocation.MyCommand.Path
$FilePathWithQuotes = '"{0}"' -f $spath
powershell -file $FilePathWithQuotes -NestedCall @ExtraArgs
但是如果通过ISE运行,则会出现此错误。
powershell:Add-Type:无法将参数“ Path”绑定到目标。 异常设置“路径”:“在D:\ Deploy \ File中找不到路径 Deploy.ps1:39 char:5 + powershell-文件$ FilePathWithQuotes -NestedCall @ExtraArgs + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ + CategoryInfo:未指定:(添加类型:Cann ...找不到路径:String)[],RemoteException + FullyQualifiedErrorId:NativeCommandError
我添加了第二行以确保空格不是问题,但在ISE中仍然失败。 有什么想法吗?我在PS 5.1上
答案 0 :(得分:0)
是的,检查$PSISE
,并在可能的情况下使用它。
$spath = If($PSISE){$psISE.CurrentFile.FullPath}else{$script:MyInvocation.MyCommand.Path}
$FilePathWithQuotes = '"{0}"' -f $spath
powershell -file $FilePathWithQuotes -NestedCall @ExtraArgs