我想在制作脚本时让生活更轻松.我正在盯着一个包含文件层次结构的小框架.问题是点源ps1脚本已经有其他文件点源来制动原始调用脚本中的范围.它看起来像这样:
$var = "shpc0001"
Run Code Online (Sandbox Code Playgroud)
. '.\loadvariables.ps1'
Run Code Online (Sandbox Code Playgroud)
. '.\config\config.ps1'
echo $var
Run Code Online (Sandbox Code Playgroud)
问题是test.ps1
尝试加载,loadvariables.ps1
因为它位于test.ps1
脚本旁边.我怎么解决这个问题?
Jar*_*Par 12
管理具有相互依赖性的脚本集合的最简单方法是将它们转换为模块.此功能仅在2.0中可用,但它允许您将一组脚本分隔为具有声明的依赖项的独立组件.
这是一个关于启动和运行模块的教程的链接
正如贾里德所说,模块是要走的路.但是,由于您甚至可能在模块内部使用点源,因此最好使用完整路径(仍可在运行时计算),如此.
## Inside modules, you can refer to the module's location like so
. "$PSScriptRoot\loadvariables.ps1"
## Outside a module, you can do this
$ScriptRoot = Split-Path $MyInvocation.MyCommand.Path
. "$ScriptRoot\loadvariables.ps1"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19383 次 |
最近记录: |