2013-07-26 3 views
0

В настоящее время я устанавливаю скрипт, который удаляет файлы в течение более 700 дней. Этот бит скрипта работает нормально. Я тестировал его, и он работает. Теперь мне было поручено оставить текстовый файл за названием «имя удаленного файла» с подробными сведениями о том, как обратиться в службу поддержки с просьбой восстановить файл. Я понятия не имею, как это сделать. Так что, пожалуйста, помогите мне?Powershell удаляет файлы и оставляет текстовый файл

Вот мой сценарий удаления:

foreach ($path in Get-Content "pathList.txt") { 
    Write-Host "Trying to delete files older than 700 days, in the folder $path" -ForegroundColor Green 
    Get-ChildItem $path -Recurse -Include "*.*" | 
     WHERE {($_.CreationTime -le $(Get-Date).AddDays(-700))} | 
      Remove-Item -Force 
} 

ответ

2

Для этого вам нужно трубы ForEach-Object так что вы получите шанс сделать текстовый файл, который нужно для каждого файла удалить.

Get-ChildItem $path -Recurse -Include "*.*" | 
    WHERE {($_.CreationTime -le $(Get-Date).AddDays(-700))} | 
     ForEach-Object { 
      $text_file = [io.path]::ChangeExtension($_, 'txt') 
      "Call help desk blah blah" | sc $text_file -Encoding ascii 
      $_ | Remove-Item -Force 
     } 
+0

Будет ли '[io.path] :: ChangeExtension ($ _, 'txt')' выдавать ошибку, если расширение $ _ отсутствует? Я плохая воля псевдонимов, sc = Set-Content. –

+0

@BobLobLaw дайте ему попробовать :) –

+0

'New-Item -Path. -Имя asdf -ItemType-файла | % {[io.path] :: ChangeExtension ($ _, 'txt')} 'Довольно круто! Угадай, кто только что узнал что-то новое, -> ЭТОТ ГУЙ! <- –

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