好的,所以我觉得这一定是PowerShell中的一个错误,但我想知道你们是否认为这听起来很糟糕.重现这是一件非常简单的事情,但我可以理解为什么它可能不是一个特别常见的用例.我下面的步骤实际上并不是我的脚本正在做的事情,我实际上正在计算子文件夹的大小 - 我只是将它浓缩到最简单的场景,显示我的问题.
我只在PowerShell 5.0.10240.16384上尝试了这个,但可能很快就有机会在早期版本上测试它[ 编辑:我现在在PowerShell 2.0上测试了这个,并且该版本中没有出现错误- 它按预期工作].只是一个简单的说明 - 我一直用作gci
Get-ChildItem的缩写.如果您还不知道,这也可以实际输入到PowerShell中.但是问题存在于你使用的别名中.
首先,创建一个名为Test [123]
somewhere 的文件夹.在该文件夹中,创建几个文件.我的是caled Test1.txt
和Test2.txt
.他们不需要任何东西.
接下来,打开PowerShell会话并打开新文件夹Set-Location
的父文件Test [123]
夹.
现在,运行gci -Filter Test*
,你应该看到类似的东西:
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 11/15/2015 3:22 PM Test [123]
Run Code Online (Sandbox Code Playgroud)
一切都好,对吗?接下来,试试gci -Filter Test* | gci
.这使得第一个gci的输出成为下一个gci的输入,即向我们显示第一个gci返回的每个项目的子项.这给了我们以下内容:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 11/14/2015 10:21 PM 0 Test1.txt
-a---- 11/15/2015 3:55 PM 0 Test2.txt
Run Code Online (Sandbox Code Playgroud)
再次,一切都很好 …