2015-09-02 66 views
0

我正在通過PowerShell創建每週備份文件。每個月我想刪除上個月的所有備份文件。 目前我的文件名看起來像這樣:使用PowerShell刪除上個月的文件

08.18.2015_username_ChromeBookmarks 

凡使用get-date cmdlet創建的日期。 這是最好的方法嗎?

回答

0

也許這將有助於:如果這是必需的目錄

ls . | ? -Property Name -Match "0?$((get-date).Month-1)\.\d{1,2}\.\d{2,4}_.*" | del 

也應謹慎服用。請參閱pushdpopd以臨時更改當前目錄。

0

下面是一個更容易閱讀的解決方案,但它使用的是文件的實際創建時間,而不是文件名來獲取日期。

Get-ChildItem -File | ?{ $_.CreationTime.Month -eq $((Get-Date).AddMonths(-1)).Month } | Remove-Item 
+0

@ campbell.nw這是可悲的不工作。它不會刪除文件。如果我理解正確,這也只會從當前日期剛好一個月前刪除這些文件。 –

+0

'$((Get-Date).AddMonths(-1))。Month' rather。否則在1月全部比較失敗:) –

+0

我們現在在第9個月,但從第8個月的文件都沒有被刪除? –