2012-04-10 71 views
0

我需要一個函數來刪除文件夾A中的所有csv文件,如果文件夾A中有csv文件,然後刪除所有csv文件(實際上,我不知道文件夾A中確切的csv文件的名稱) ; 如果文件夾A中沒有csv文件,則不執行任何操作。 我已搜查有關刪除MP3文件的話題: Powershell - Delete all non mp3 files如何使用powershell判斷某些類型的文件(suce爲csv文件)?

然後我將這個例子出來,下面是刪除文件夾中的我的CSV文件的cmdlet:

Get-childitem -Recurse | Where-Object {$_.Extension -eq '.csv'} | 
Remove-Item -whatIf 

,但有一個問題,當文件夾A中沒有csv文件時,在cmd上方移動時會導致錯誤。我只是不知道如何判斷csv文件是否存在,其他人可以幫忙? thx非常。

+0

在您的代碼示例中,您正在刪除排除csv的所有文件。 – 2012-04-10 07:50:36

+0

是的,這也是一個好主意。 – CharlieShi 2012-04-10 07:52:03

回答

0

您可以簡單地添加-ErrorActionremove-item跳過錯誤:

Get-childitem -Recurse | Where-Object {$_.Extension -ne '.csv'} | 
Remove-Item -ErrorAction SilentlyContinue 
+0

是的,你是對的,非常感謝。 – CharlieShi 2012-04-10 07:50:43

+0

認爲這也許是最好的方法。 – CharlieShi 2012-04-10 07:51:01

0

使用IF結構來測試,如果條件爲true,在執行刪除操作前:

if(gci c:\folderA -filter *.csv){do-something} 

如果之間的語句圓括號返回false,大括號之間的代碼不會執行。

相關問題