【发布时间】:2018-08-12 18:57:16
【问题描述】:
我是powershell的初学者,我才用了几个星期,看到这个我在想$_:
Get-ChildItem 应该返回目录中的文件
PS C:\Users\Edu-mat\Powershell> Get-ChildItem
Diretório: C:\Users\Edu-mat\Powershell
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/08/2018 13:38 7 Test0.txt
-a---- 10/08/2018 13:42 5 Test1.txt
-a---- 10/08/2018 13:42 7 Test2.txt
-a---- 10/08/2018 13:43 8 Test3.txt
$_ 表示管道中的当前对象。
但是当我做Get-ChildItem | %{write-host $_} 时,输出并不像预期的那样
PS C:\Users\Edu-mat\Powershell> Get-ChildItem | %{write-host $_}
Test0.txt
Test1.txt
Test2.txt
Test3.txt
为什么 $_ 没有返回整个对象,它只是打印文件名?
谁能解释一下。
【问题讨论】:
-
您的第一个示例也没有显示整个对象,它缺少创建日期、完整目录名称、所有 NoteProperties(如
PSIsContainer)、所有方法、ScriptProperties...对象不适合屏幕,你看不到它们,你只能将它们的一部分变成文本并显示出来。 PowerShell 输出格式化程序采用一种方式,试图看起来像旧的命令提示符dir命令,write-host采用另一种方式,即来自 PowerShell 下的 .Net 框架。
标签: powershell oop