功能"别名"需要传递参数

时间:2016-10-19 09:56:30

标签: powershell args

我已将以下内容放入$PROFILE

function dir
{
    Get-ChildItem -Force $args
}

我想要的是一个简单的" dir"列出所有文件的命令,包括隐藏文件和系统文件。

然而,只要我传递一些参数:

dir \ -Directory

我获得了我的root的完整列表,然后是这个错误:

  

Get-ChildItem:无法找到路径' C:\ Users \ myuser-Directory'因为   它不存在。

我的意图当然是我的小家伙"别名"会扩展到这个:

Get-ChildItem -Force \ -Directory

但是#34; -Directory"被视为字符串文字。如何使我的dir函数按照我的意图传递参数(而不是字符串数组)?

1 个答案:

答案 0 :(得分:1)

$args是一个数组。如果您这样使用它:

Get-ChildItem -Force $args

它就像你这样做一样:

Get-ChildItem -Force -Path '\', '-Directory'

有效(在某种程度上),因为参数-Path接受数组输入。

使用splatting来避免这个陷阱:

Get-ChildItem -Force @args