相关疑难解决方法(0)

如何使用相对路径调用另一个PowerShell脚本?

我有以下目录树:

e:\powershell\services\This-Script-Here-Should-Call-Press any key to continue.ps1
e:\powershell\utils\Press any key to continue.ps1
Run Code Online (Sandbox Code Playgroud)

现在我想调用一个名为"按任意键继续.ps1"的脚本,它位于"utils"文件夹中,来自我在"services"文件夹中的脚本.我怎么做?我无法弄清楚相对路径.

我试着这样做:

"$ '.\..\utils\Press any key to continue.ps1'"
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

powershell relative-path

16
推荐指数
3
解决办法
7万
查看次数

PowerShell PSScriptRoot为null

当我运行$PSScriptRoot它返回null.我正在使用PS版本4.

$val  = Join-Path -Path $PSScriptRoot WebPlatformInstaller_amd64_en-US.msi
Run Code Online (Sandbox Code Playgroud)

错误

Join-Path:无法将参数绑定到参数'Path',因为它是一个空字符串.

powershell powershell-4.0

13
推荐指数
2
解决办法
1万
查看次数

无法在 PowerShell 中运行的脚本中声明方法

我所描述的调用脚本这里并举例在这里。它正在运行,我可以看到控制台的输出(hazaashazoo)。但是,尽管测试了以下两个版本,但其中声明的方法似乎并不存在。

Invoke-Expression -Command $target
$target | Invoke-Expression
Run Code Online (Sandbox Code Playgroud)

文件的内容是这样的。

Write-Host "Hazaa"
function TestPower { Write-Host "I got the power..." }
Write-Host "Shazoo"
Run Code Online (Sandbox Code Playgroud)

当我在控制台中执行相同的函数定义时,它就在那里,工作正常。我在手动执行或从其他文件调用时没有收到任何错误。也没有警告。

最奇怪的部分是在调用脚本中完成的函数定义(id 是调用执行的那个,而不是作为调用目标的那个)。

powershell

-1
推荐指数
1
解决办法
85
查看次数

标签 统计

powershell ×3

powershell-4.0 ×1

relative-path ×1