Если вы используете PowerShell v4.0, вы можете сделать цепочку трубопроводов с использованием -PipelineVariable
и иметь что-то вроде этого:
New-Item -ItemType File file1.txt -PipelineVariable d `
| New-Item -ItemType File -Path file2.txt `
| ForEach-Object {$_.LastWriteTime = $d.LastWriteTime}
В PowerShell v3.0 (или меньше), вы можете просто использовать ForEach-Object петель:
New-Item -ItemType File -Path file1.txt `
| ForEach-Object {(New-Item -ItemType File -Path file2.txt).LastWriteTime = $_.LastWriteTime}
Я понимаю, что это немного подробный. Резка вниз алиасы будет легко:
ni -type file file1.txt | %{(ni -type file file2.txt).LastWriteTime = $_.LastWriteTime}
Или вы можете обернуть его в функции:
Function New-ItemWithSemaphore {
New-Item -ItemType File -Path $args[0] `
| ForEach-Object {(New-Item -ItemType File -Path $args[1]).LastWriteTime = $_.LastWriteTime}
}
New-ItemWithSemaphore file1.txt file2.txt
При использовании существующих файлов, это будет работать, просто получая деталь основанной на данный путь:
Function New-FileSemaphore {
Get-Item -Path $args[0] `
| ForEach-Object {(New-Item -ItemType File -Path $args[1]).LastWriteTime = $_.LastWriteTime}
}
New-FileSemaphore file1.txt file2.txt
возможно дубликат [PowerShell открыть файл только для записи (для блокировки) и делать на ощупь 'так, чтобы изменить дату последнего изменения, к файлу] (http://stackoverflow.com/questions/26156715/PowerShell открыть-а-файл-для-записи только в наличии Блокировка дремлют-сенсорный так к изменению) – Matt