2012-04-10 1 views
0

Мне нужна функция для удаления всех файлов csv в папке A, если в папке A есть файлы csv, а затем удалите все файлы csv (на самом деле, я не знаю точное имя файла csv в папке A) ; , если в папке A нет файла csv, тогда ничего не делать. Я искал тему об удалении файлов mp3: Powershell - Delete all non mp3 filesКак определить определенный тип файлов (suce as csv file), используя powershell?

тогда я беру пример, и ниже является командлет, что удалить мои CSV файлы в папке A:

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

но Существует проблема, когда в папке A нет файлов csv, если вызывать выше cmd вызовет ошибку. Я просто не знаю, как судить, существует ли файл csv, кто-нибудь еще может помочь? thx очень много.

+0

В вашем примере кода вы удаляете все файлы, исключенные csv. –

+0

Да, это тоже хорошая идея. – CharlieShi

ответ

0

Вы можете просто добавить -ErrorAction в remove-item пропустить ошибку:

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

да, U're right, thx очень много. – CharlieShi

+0

думаю, что это лучший способ. – CharlieShi

0

Используйте если конструкцию, чтобы проверить, если условие истинно перед выполнением удалений:

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

Если заявление между скобки возвращают false, код между фигурными фигурными скобками не выполняется.