powershell载入函数
我们把powershell函数写入ps1文件,然后执行,发现ps1脚本中的函数并没有载入运行环境。
这里我们可以使用 .
语法加载函数,可能就类似于bash里的source命令了
即
. function.ps1
Import-Module
我们也可以用这个cmdlets
Import-Module function.ps1
获取当前脚本执行目录
当我们直接在命令行运行ps1脚本,其实和我们把脚本复制到powershell终端里执行是一样的效果
所以当我们在脚本中使用了相对目录,就会出问题。
比如我用下面这个命令替换$profile 文件
Set-Content -Path $profile -Value (Get-Content $currentScriptFolder/Microsoft.PowerShell_profile.ps1)
相对目录会被解释为终端打开的目录,导致找不到文件。
因此我们需要脚本所在的目录来实现相对目录。
就是下面的方法,我封装了一个函数
# 获取脚本执行目录
function Get-ScriptFolder(){
$currentScriptPath = $MyInvocation.MyCommand.Definition
$currentScriptFolder = Split-Path -Parent $currentScriptPath
return $currentScriptFolder
}
网友评论