我是PowerShell的新手,我想创建一个哈希表 列出dir命令和找到的文件的路径。我试过了:
$hash1=@{label ="Files Found in ($_|select -first1).parent.fullname";Expression={$_.name}}
dir c:\ |select-object -property $hash1
预期输出
的folder1
result3.html
file2.htm
的file1.html
servers.txt
但我明白了:
新
result3.html
result5.html
result55.html
servers.txt
我错过了什么?
答案 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