Como combinar curingas e espaços (aspas) em um comando do Windows?

2

Eu quero remover os diretórios do seguinte formato:

C:\Program Files\FogBugz\Plugins\cache\[email protected]_NN

NN é um número, portanto, quero usar um caractere curinga (isso faz parte de uma etapa de pós-compilação no Visual Studio). O problema é que preciso combinar aspas em torno do nome do caminho (para o espaço em Program Files ) com um caractere curinga para corresponder ao final do caminho. Eu já descobri que rd é o comando de remoção que aceita curingas, mas onde eu coloco as aspas? Eu tentei nenhuma citação final (funciona para dir ), ...example.com*" , ...example.com"* , ...example.com_??" , ...cache\"[email protected]* , ...cache"\[email protected]* , mas nenhum deles funciona.

(Quantos comandos para remover um arquivo / diretório existem no Windows? E por que eles diferem em capacidades?)

    
por Jan Fabry 02.06.2010 / 12:14

2 respostas

3

rmdir não suporta curingas. Apenas aceita nomes completos de arquivos.

Você pode tentar esta alternativa:

for /d %f in ("C:\Program Files\FogBugz\Plugins\cache\[email protected]_*") do rmdir /s/q "%~f"

(Os argumentos /s/q para rmdir fazem a mesma coisa que rm -rf no Unix. O argumento for /d torna for nomes de diretórios correspondentes em vez de nomes de arquivos.)

Lembre-se que o shell cmd.exe não faz expansão de curingas (diferente de Unix sh ) - isso é tratado pelo próprio comando.

    
por 02.06.2010 / 14:39
0

Você pode escapar do espaço com o caractere ^ : C:\Program^ Files\FogBugz\Plugins\cache\[email protected]_*

    
por 02.06.2010 / 12:24