假设我有一个 Powershell Format-Table
字符串,类似于:
ls | Format-Table Name, @{expression={$_.Length / 1024}; label='KB'}
我对由此获得的输出感到满意,但我不想每次使用它时都输入它。我希望能够用一个简单的单字命令来调用它,例如:
ls | Format-KiloBytes
我想我应该为此定义一个函数,因为别名不能指定参数。但是,如果我定义如下内容:
function kilobytes {format-table Name, @{expression={$_.Length / 1024}; label='KB'}}
那么它就没有任何作用了:
PS> ls | format-table Name, @{expression={$_.Length / 1024}; label='KB'}
... Produces the formatted output
PS> ls | kilobytes
... Produces output with unchanged formatting, the same as 'ls'
编辑:看来我很困惑。在试验时,我已经创建了一个别名 kilobytes
,别名为 Format-Table
。我忘记了这一点,但这意味着创建函数 kilobytes
在没有任何警告的情况下成功,但随后调用 kilobytes
并不是调用新创建的函数,而是调用现有的别名.
最佳答案
首先你可以试试:
function kilobytes {$input | format-table Name, @{expression={$_.Length / 1024}; label='KB'}}
可以在about_Functions中找到$input
的解释.当您在管道中使用函数时,通过管道传输到该函数的对象将分配给 $input 自动变量。
关于powershell - 如何在 Powershell 中为 Format-Table 创建别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19999085/