列出具有HASHTABLE的DIR命令的路径

时间:2015-07-16 18:28:55

标签: powershell

我是PowerShell的新手,我想创建一个哈希表 列出dir命令和找到的文件的路径。我试过了:

$hash1=@{label ="Files Found in ($_|select -first1).parent.fullname";Expression={$_.name}}
 dir c:\ |select-object -property $hash1

预期输出

文件在C:\

中找到的文件

的folder1
result3.html
file2.htm
的file1.html
servers.txt

但我明白了:

在(| select -first1).parent.fullname

中找到的文件


result3.html
result5.html
result55.html
servers.txt

我错过了什么?

1 个答案:

答案 0 :(得分:1)

如果要在字符串中展开,则需要将其包装在子表达式中。所以改成它:

$hash1=@{label ="Files Found in $(($_|select -first1).parent.fullname)";Expression={$_.name}}

编辑:那么,看起来我应该先测试一下。似乎这可能是通过Select-Object创建自定义属性的限制。你可以做的是通过ForEach循环管道它并为我测试的每个项目创建PSCustomObjects,它确实有效:

dir c:\ |ForEach{[pscustomobject]@{"Files Found in $($_.parent.fullname)"=$_.name}}

结果是:

Files Found in C:\                                                                                                                                                                                                                                               
------------------                                                                                                                                                                                                                                               
DRIVERS                                                                                                                                                                                                                                                          
Intel                                                                                                                                                                                                                                                            
PerfLogs                                                                                                                                                                                                                                                         
Program Files                                                                                                                                                                                                                                                    
Program Files (x86)                                                                                                                                                                                                                                              
Temp                                                                                                                                                                                                                                                             
Users                                                                                                                                                                                                                                                            
Windows