在Powershell中一次设置多个属性

时间:2011-05-25 21:48:08

标签: syntax powershell

在一个命令中,是否有更短的方法在Powershell中将多个属性设置为相同的值而不是这个?

示例:

(gi  "c:\test.txt").LastWriteTime = (gi  "c:\test.txt").LastAccessTime = (gi  "c:\test.txt").CreationTime = Get-date

我很好奇是否有办法缩短这种语法。

2 个答案:

答案 0 :(得分:7)

"CreationTime","LastWriteTime","LastAccessTime" |% {(gi test.txt).$_ = (get-date)}

答案 1 :(得分:0)

我使用了Mjolinor的一个稍微修改过的版本来解决我刚刚从远程源下载的文件上的错误日期问题。我修改了代码,以便在将来我必须回到它时更清楚地理解它(将简短的手改为完整的命令名)。

# Correct Access/Create/Write times on transferred files
ForEach( $File in $TransferList ) {
    @("CreationTime","LastAccessTime","LastWriteTime") | ForEach {
        $(Get-Item $File.Name).$_ = $File.Date
    }
}