我有一个特定的命令,我希望能够将参数附加到作为 powershell 配置文件函数。虽然我不太确定每次运行此命令时能够捕获的最佳方法,但任何见解都会有所帮助。
命令:地形规划
每次运行计划时,我都希望能够检查参数并查看是否传入了 -lock=true
,如果没有传入,则附加 -lock=false
到它。是否有合适的方法来捕获此命令的运行时间,而不仅仅是创建一个构建该命令的全新函数?到目前为止,我所看到的捕获命令的唯一方法是使用 Start-Transcript
但这并不能完全让我到达我需要的地方。
最佳答案
最简单的方法是创建一个包装函数来分析其参数并添加 -lock=false
在调用 terraform
之前根据需要效用。
function terraform {
$passThruArgs = $args
if (-not ($passThruArgs -match '^-lock=')) { $passThruArgs += '-lock=false'}
& (Get-Command -Type Application terraform) $passThruArgs
}
以上使用与实用程序相同的名称,有效地隐藏了后者,正如您的意图。
但是,我会警告不要对包装函数使用相同的名称,因为它会让人难以理解正在发生的事情。
此外,如果通过 $PROFILE
全局定义或以交互方式,在同一 session 中运行的任何毫无戒心的代码都将调用包装函数,除非显式路径或显示的 Get-Command
技术被使用。
关于Powershell 配置文件将参数附加到某个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73736336/