我被同事给了一个powershell脚本来试图找出答案。我很少接受它,所以我被卡住了。
我们需要从.ps1文件中提取用户定义的cmdlet,形成驱动器的另一部分。
通常你会这样做:
. .\scripts\thing.ps1
但是我们想在命令提示符中使用设置的环境变量来启动该位置。我们有类似的东西:
. $Env:JobDir\scripts\thing.ps1
但是这会返回错误
. : The term '\scripts\thing.ps1' is not recognized as the name of a cmdlet, function, script file, or operable program.
无论如何要做出类似这样的工作吗?
答案 0 :(得分:3)
您需要将其设为字符串,否则它会将整个路径解释为变量。
"$Env:JobDir\scripts\thing.ps1"
或
$Env:JobDir + "\scripts\thing.ps1"
答案 1 :(得分:1)
您可以这样做:
# build the path to the job
$job = Join-path -Path $Env:JobDir -ChildPath "scripts\thing.ps1"
# execute the job
$job
或
.$("$Env:JobDir\scripts\thing.ps1")