2013-08-16 2 views
2

Я хотел бы изменить дату создания файлов, которые я произвожу с помощью этого сценария:Как установить свойство LastWriteTime файла?

$clientname = Read-Host "Enter the client name" 
$path = Read-Host "Enter the complete path of .bak files" 

$time = "01-00-00" 
$space = " " 


for ($i = 0; $i -lt 7;$i++) 
{ 

$date = (Get-Date).AddDays(-1-$i).ToString('yyyy-MM-dd') 

New-Item -ItemType file $path$clientname$space$date$space$time.bak 

} 

Так это дает мне тезисы файлы:

Mode    LastWriteTime  Length Name               
----    -------------  ------ ----               
-a---  16/08/2013  16:55   0 client 2013-08-15 01-00-00.bak         
-a---  16/08/2013  16:55   0 client 2013-08-14 01-00-00.bak         
-a---  16/08/2013  16:55   0 client 2013-08-13 01-00-00.bak         
-a---  16/08/2013  16:55   0 client 2013-08-12 01-00-00.bak         
-a---  16/08/2013  16:55   0 client 2013-08-11 01-00-00.bak         
-a---  16/08/2013  16:55   0 client 2013-08-10 01-00-00.bak         
-a---  16/08/2013  16:55   0 client 2013-08-09 01-00-00.bak 

Я хочу, чтобы изменить свойство LastWriteTime каждого файлов, я хочу, чтобы он был таким же, как дата в имени файла.

Пример для этого файла "client 2013-08-15 01-00-00.bak" LastWriteTime будет "15/08/2013 01:00"

Я застрял, и я не знаю, как мы можем сделать это

Спасибо

+0

FYI http://pscx.codeplex.com имеет команду Set-FileTime (alias touch), которая весьма удобна. –

ответ

5

Не тестировался, но попробовать это в цикле после того, как вы звоните New-Item:

$file = Get-ChildItem $path$clientname$space$date$space$time.bak 
$file.LastWriteTime = (Get-Date).AddDays(-1-$i) 

Если вы хотите, чтобы увидеть полный список вещей, которые вы можете сделать с объектами FileInfo, попробуйте позвонить $file | gm в консоль powershell. Вы также можете посмотреть docs on MSDN.

+0

Спасибо, что он работает –

1
for ($i=0; $i -lt 7;$i++) 
{ 
    $date = (Get-Date).AddDays(-1-$i) 
    $filedate = $date.ToString('yyyy-MM-dd') 
    $file = New-Item -ItemType File $path$clientname$space$filedate$space$time.bak 
    $file.LastWriteTime = $date 
} 
Смежные вопросы