Установка нескольких свойств одновременно в Powershell

Есть ли более короткий способ установить для нескольких свойств одно и то же значение в Powershell в одной команде, чем этот?

Пример:

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

Мне просто любопытно, есть ли способ сократить этот синтаксис.


person Yots    schedule 25.05.2011    source источник


Ответы (2)


Я использовал слегка измененную версию ответа Мьолинор, чтобы решить проблему с неправильной датой в файлах, которые были только что загружены из удаленного источника. Я изменил код, чтобы сделать его более понятным на случай, если мне придется вернуться к нему в будущем (изменил краткое обозначение на полные имена команд).

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

person    schedule
comment
Ради интереса можно сделать и так: $test.CreationTime, $test.LastWriteTime, $test.LastAccessTime = @(get-date) * 3 - person JasonMArcher; 18.06.2011
comment
Оба ваших ответа семантически не совсем совпадают с примером оператора. OP гарантируется одна и та же дата на всех трех реквизитах. В ваших случаях не так. Существует вероятность пролонгации как для объекта foreach, так и для множителя *. - person x0n; 24.04.2012