检查参数是否丢失

Check if parameter is missed

我在 PS 版本 5 的 $profile 中有此代码:

function af_ {
   Get-ChildItem function: | findstr.exe $args 
   if (! $args) {
     return "nothing"
   }
}

调用例如

af_ tgit

Return:

Function        tgit                                               0.7.3      posh-git

通话中

af_

输出:

FINDSTR: Syntaxfehler
nothing

两个问题:

  1. 如果没有“Syntaxfehler”(这是德语..),我如何检查 $args 是否不为空?

  2. 我可以改进我的想法以获得自定义函数的定义吗?

    declare -f $function

在 Bash 中。它显示了在 PS 中似乎不可能的定义。我必须处理函数:设备,然后查找“定义”输出。

你得到语法错误是因为你调用 findstr.exe 时使用空参数 检查它之前。颠倒顺序应该这样做:

function af_ {
   if (! $args) {
     return "nothing"
   }
   Get-ChildItem function: | findstr.exe $args 
}

关于你的第二个问题,你可以使用 Get-Command 来获取命令及其定义:

(Get-Command af_).Definition