我喜欢使用以下代码来模拟Unix“查找”行为:
ls DIRECTORY -recurse -include PATTERN | foreach { "$_" }
事实上,还有一些其他命令我想将此| foreach { "$_" }
附加到其中。所以我试图找到一种方法来使这更容易输入。我试过这样的东西:
function xfind {
ls $args | foreach { "$_" }
}
然后我这样调用它:
xfind DIRECTORY -recurse -include PATTERN
但这似乎做错了......
答案 0 :(得分:4)
只需使用-name
的{{1}}开关(又名Get-ChildItem
,ls
):
dir
这种方式原生,干净,有效。
答案 1 :(得分:2)
试试这个,它可以扩展到一个完整的高级功能。关键是通过使用特殊变量(PSBoundParameters)传递所有参数来将参数传递给ls,该变量在高级函数中是可用的:
function xfind {
[cmdletbinding()]
param(
[string[]]$path,
[switch]$recurse,
[string[]]$include
)
ls @PSBoundParameters | foreach { "$_" }
}