Enquanto você está pedindo algo para excluir todos os arquivos não * .cs no Lote, o PowerShell pode ser muito mais simples:
Get-ChildItem -Recurse -File | Where {($_.Extension -ne ".cs")} | Remove-Item
O que isto faz é:
- Obtém todos os itens filhos (arquivos e pastas) dentro da pasta atual de forma recursiva e faz isso com uma pesquisa limitada aos arquivos.
- limita os resultados para arquivos ONDE a extensão do arquivo -ne (não é igual) ".cs"
- Remove todos os resultados retornados
tenha cuidado ao usar isso - se o seu diretório de trabalho for C: \, você irá (tentar) limpar todos os arquivos não .cs do seu disco.
Para testar o que isso removerá, adicione o siwtch "-WhatIf" à sua sintaxe para realizar uma execução de teste que não remova realmente os arquivos:
Get-ChildItem -Recurse -File | Where {($_.Extension -ne ".cs")} | Remove-Item -whatif