extrato lote RAR com espaços em nomes
-
03-07-2019 - |
Pergunta
Eu estou tentando extrair lote algumas de rar que são de alguma zip em alguns diretórios. Para encurtar a história este é o meu percorrer os arquivos RAR:
for %%r in (*.rar) do (
unrar x %%r
)
O problema é que %% r obtém o valor errado. Se o nome de arquivos é "name.rar Arquivo" e depois %% r recebe o "file" valor -. Ele pára no primeiro espaço no nome do arquivo
Como faço para obter este loop para arquivos de arquivo de trabalho com espaços em nomes?
Obrigado
Solução
Tente isto:
for /f "usebackq delims==" %i in (`dir /b *.rar`) do unrar x "%i"
Se você estiver usando-lo em um arquivo de lote, lembre-se que você terá que dobrar os sinais por cento, para escapar deles.
Outras dicas
%%r
conterá o nome do arquivo completo, incluindo espaços. É a sua chamada para unrar
que tem o problema. Se o nome do arquivo contém espaços você tem que colocá-lo entre aspas, caso contrário unrar
não será capaz de ver que os dois parâmetros file
e name.rar
são na verdade um único nome de arquivo com um espaço (separados por espaço).
Então, o seguinte irá funcionar:
for %%r in (*.rar) do unrar "%%r"
Além disso, se você aer curioso, onde as mentiras de problema, às vezes é muito útil para simplesmente substituir a chamada do programa com eco:
for %%r in (*.rar) do @echo %%r
, onde você vai ver que %% r inclui os espaços em nomes de arquivos e não rasgar-los.