4
在一个命令中,是否有更简单的方法在一个命令中将多个属性设置为相同的值?在Powershell中一次设置多个属性
例子:
(gi "c:\test.txt").LastWriteTime = (gi "c:\test.txt").LastAccessTime = (gi "c:\test.txt").CreationTime = Get-date
我只是好奇,如果有缩短这个语法的方式。
在一个命令中,是否有更简单的方法在一个命令中将多个属性设置为相同的值?在Powershell中一次设置多个属性
例子:
(gi "c:\test.txt").LastWriteTime = (gi "c:\test.txt").LastAccessTime = (gi "c:\test.txt").CreationTime = Get-date
我只是好奇,如果有缩短这个语法的方式。
"CreationTime","LastWriteTime","LastAccessTime" |% {(gi test.txt).$_ = (get-date)}
我用Mjolinor的答案来解决一个问题,我有不正确的日期的上刚刚从远程源下载的文件的稍作修改的版本。我修改了代码,以便在将来必须回来时更清楚地理解(将空白手段更改为完整的命令名称)。
# Correct Access/Create/Write times on transferred files
ForEach($File in $TransferList) {
@("CreationTime","LastAccessTime","LastWriteTime") | ForEach {
$(Get-Item $File.Name).$_ = $File.Date
}
}
只是为了好玩,你也可以这样做:'$ test.CreationTime,$ test.LastWriteTime,$ test.LastAccessTime = @(获取最新)* 3' – JasonMArcher 2011-06-17 21:02:27
这两个答案都不尽相同在语义上,作为op的例子。 OP保证所有三种道具的同一日期。在你的情况下,并非如此。 foreach-object和* multiplier都有可能翻滚。 – x0n 2012-04-24 03:03:24