Há muito tempo, escrevi um script simples que excluía todos os subdiretórios com nomes próprios em um diretório especificado:
Remove-Item * -Force -Recurse -Include name1,name2,name3 -ErrorAction SilentlyContinue
Faz muito tempo que não uso, mas agora precisava. Eu lanço - nada é excluído.
“O que é isso?”, eu penso. Comecei a cavar. Eu brinquei e brinquei, revisei tudo, criei uma lista com antecedência e mudei os nomes - ainda nada foi excluído. Finalmente, no documento deles li: "Na verdade, -Include apresenta erros quando usado em conjunto com -Recurse, então use a construção muleta.":
Como o parâmetro Recurse em Remove-Item tem um problema conhecido, o comando neste exemplo usa Get-ChildItem para obter os arquivos desejados e, em seguida, usa o operador de pipeline para passá-los para Remove-Item.
Bem, ok, eu reescrevi usando esta muleta. Um ótimo negócio - não exclui nada. Além disso, Get-ChildItem с -Incluir retorna o vazio. Novamente, não importa o que eu fiz, não importa o quanto distorci os parâmetros, não funcionou. O principal é com -Excluir funciona, mas com -Incluir sem chance. Passei um dia inteiro nisso: fiquei pensando que em algum lugar dos parâmetros eu estraguei, que não levei em conta alguma nuance complicada. E o que aconteceu no final? Instalei-os no PS7.1 e funcionou. Ele ainda contém a primeira opção sem muleta usando apenas Remover item merecido. Em geral, acabou sendo o bug deles.
Mas tendo sofrido com o Mighty Shell, fui ao Google para ler por que o shell deles tem uma sintaxe tão alucinante. Droga, eles o posicionam como .NET para o console, mas nem sequer sentem o cheiro da sintaxe C#. Em vez dele…
De qualquer forma, me deparei com este artigo: "
Suspeito que a equipe do Mighty Shell seja um bando de fãs do Bash.
- Vamos finalmente criar um console para Windows no qual você possa escrever scripts complexos. Caso contrário, nosso cmd está desatualizado, tanto que já ficamos com um pouco de vergonha.
- Vamos! Com base no que faremos? Já temos VBScript, JScript. Por fim, temos linguagens para .NET: C#, VB. Talvez possamos fazer isso em C#? Quero dizer, usaremos C# como linguagem de script para nosso console. Além disso, queremos adicionar classes .NET lá.
- Não, o que você está fazendo cara, que C#? Geeks de verdade usam o bash! Então vamos fazer o bash para Windows. Não me importa que a sintaxe do bash tenha sido aparentemente escrita por uma multidão de descolados chapados na década de 1960. Em geral, quanto mais complexo melhor! A intuição é para os fracos! Ao escrever um script em nosso idioma, o usuário deve amaldiçoar tudo no mundo e inventar alguns novos palavrões. Somente tal linguagem tem direito à vida. Olha, o pessoal do Linux vive assim a vida toda e sente uma emoção inexplicável com tudo isso. Por que estamos piores?
Apenas usuários registrados podem participar da pesquisa.
Você usa o PowerShell e se sente confortável com ele?
-
30,3%eu não uso40
-
29,6%Experimentei e não gostei39
-
23,5%Eu uso e estou feliz com tudo31
-
12,9%Eu uso, mas não estou feliz17
-
3,8%Viva! Finalmente posso usar meu bash favorito no Windows!5
132 usuários votaram. 26 usuários se abstiveram.
Fonte: habr.com