我使用以下命令获取在20小时之前和之后20天之后修改过的所有文件。
Get-ChildItem -Path '\\server\c$\Program Files (x86)\folder' -recurse -Filter *.* -include *.* |? {$_.LastWriteTime -lt (Get-Date).Addhours(-20) }|? {$_.LastWriteTime -gt (Get-Date).AddDays(-20)} | Select Fullname ,LASTWRITETIME | Sort-Object -Property LASTWRITETIME -Descending
它确实给了我正确的结果。
但是我将Fullname称为:
\\server\c$\Program Files (x86...
我如何获得全名? Fullname非常长......超过260个字符。
我已经尝试了
Select -Expand Fullname
它工作正常,但我无法在LastWriteTime
中使用它Select -Expand Fullname, LastwriteTime
上面的命令给我错误。
答案 0 :(得分:2)
您可以使用Format-Table
cmdlet格式化输出,如下所示:
$table_properties = @{Expression={$_.Fullname};Label="Full Name";width=195},
@{Expression={$_.LastWriteTime};Label="Last Write Time";width=35}
Get-ChildItem -Path '\\server\c$\Program Files (x86)\folder' -recurse -Filter *.* -include *.* |
? {$_.LastWriteTime -lt (Get-Date).Addhours(-20) }|
? {$_.LastWriteTime -gt (Get-Date).AddDays(-20)} |
Sort-Object -Property LASTWRITETIME -Descending |
Format-Table $table_properties
而不是Select Fullname,LASTWRITETIME
使用格式参数创建自定义对象$table_properties
,并将其传递给Format-Table
。
如果您的字符串比PowerShell主机显示宽度宽,而不是管道输出到Out-String -Width 500
,其中500是足以显示所有字段的字符。
请参阅TechNet上的Creating custom tables文章。