我有这个脚本:
Get-ChildItem -Path R:MyFolderarchive -Recurse |
>> Sort-Object -Property LastAccessTime |
>> Select-object -Property Name, FullName
我想要没有文件名的路径,而不是全名,所以我尝试按如下方式进行调整:
Get-ChildItem -Path R:MyFolderarchive -Recurse |
>> Sort-Object -Property LastAccessTime |
>> Select-object -Property Name, [System.IO.Path]::GetDirectoryName(fullname)
我显然对PS
很陌生 - 清楚我正在尝试做什么和失败吗?
通常,Get-ChildItem
cmdlet 返回不同类型的对象:
System.IO.FileInfo
System.IO.DirectoryInfo
不幸的是,在后者上,您找不到名为DirectoryName
.可以使用Get-ChildItem -File
(-File
参数消除此类对象(,也可以按如下方式使用计算属性:
$rootPath = 'R:MyFolderarchive'
Get-ChildItem -Path $rootPath -Recurse |
Sort-Object -Property LastAccessTime |
Select-Object -Property Name,
@{ Name = 'DirectoryName';
Expression = { $_.FullName | Split-Path }}
有关说明,请阅读选择对象 => 参数:
-财产
指定要选择的属性。这些属性添加为 注意输出对象的属性成员。允许使用通配符。
属性参数的值可以是新计算的值 财产。若要创建计算属性,请使用哈希表。
有效密钥为:
- 名称(或标签(:
- 表达或
怎么样:
Get-ChildItem -Path 'R:MyFolderarchive' -Recurse | Sort-Object -Property LastAccessTime | Select-object -Property Name, DirectoryName
?