2014-12-23 5 views
1

Я хотел бы использовать powershell для копирования измененного времени из файла в новый файл, но содержимое файла будет ничем. В командной строке я хотел бы использовать следующий синтаксис:Powershell, копировать измененное время файла в файл семафора

copy /nul: file1.ext file2.ext 

Второй файл будет иметь то же время изменения в качестве первого файла, но содержание будет составлять 0 байт.

Цель состоит в том, чтобы использовать синтаксис для запуска скрипта для проверки папки, поиска файла1 и создания файла2.

+0

возможно дубликат [PowerShell открыть файл только для записи (для блокировки) и делать на ощупь 'так, чтобы изменить дату последнего изменения, к файлу] (http://stackoverflow.com/questions/26156715/PowerShell открыть-а-файл-для-записи только в наличии Блокировка дремлют-сенсорный так к изменению) – Matt

ответ

1

Если вы используете 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 

 Смежные вопросы

  • Нет связанных вопросов^_^