2013-07-26 69 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。 -Name asdf -ItemType文件| %{[io.path] :: ChangeExtension($ _,'txt')}'很酷!猜猜誰剛剛學到了新的東西, - >這個傢伙! < - –