小编Pri*_*rid的帖子

Dot-Sourced 文件中的 PSScriptRoot 如何工作?

假设我有 2 个文件A.ps1B.ps1,在此目录结构中:

--  root
 |
 |-- A.ps1
 |
 |--  subfolder
   |
   |-- B.ps1
Run Code Online (Sandbox Code Playgroud)

A.ps1:

Write-Host $PSScriptRoot
Run Code Online (Sandbox Code Playgroud)

B.ps1:

. "\root\A.ps1"
Run Code Online (Sandbox Code Playgroud)

现在,考虑到这一事实

点采购获取您指定的脚本并立即执行它,就像它位于原始脚本中的该位置一样

问题:如果我运行B.ps1,我期望结果是\root\subfolder,但它是\root,为什么?

如果A.ps1是点源到 中B.ps1,那么脚本的内容不应该直接在 中写入一样A.ps1运行吗?意思是,不应该像从 调用一样运行,从而评估为? 我什至通过包装一个函数并在点采购调用该函数来测试这一点。仍然产生相同的结果..B.ps1$PSScriptRootB.ps1\root\subfolderA.ps1B.ps1

点采购到底是如何运作的?

powershell relative-path dot-source

4
推荐指数
1
解决办法
651
查看次数

标签 统计

dot-source ×1

powershell ×1

relative-path ×1