Estrazione batch di rars con spazi nei nomi
-
03-07-2019 - |
Domanda
Sto cercando di estrarre in batch alcuni rar che sono in alcuni zip in alcune directory. Per farla breve, questo è il mio ciclo attraverso i file rar:
for %%r in (*.rar) do (
unrar x %%r
)
Il problema è che %% r ottiene il valore sbagliato. Se il nome del file è " nome file.rar " quindi %% r ottiene il valore " file " - si ferma al primo spazio nel nome del file.
Come posso ottenere questo ciclo per lavorare file con spazi nei nomi?
Grazie
Soluzione
Prova questo:
for /f "usebackq delims==" %i in (`dir /b *.rar`) do unrar x "%i"
Se lo stai usando in un file batch, ricorda che dovrai sfuggire ai segni di percentuale per evitarli.
Altri suggerimenti
%% r
conterrà il nome file completo compresi gli spazi. È la tua chiamata a unrar
che ha il problema. Se il nome del file contiene spazi, devi racchiuderlo tra virgolette, altrimenti unrar
non sarà in grado di vedere che i due parametri (separati da spazio) file
e < code> name.rar sono in realtà un singolo nome file con uno spazio.
Quindi funzionerà quanto segue:
for %%r in (*.rar) do unrar "%%r"
Inoltre, se sei curioso di sapere dove si trova il problema, a volte è molto utile sostituire semplicemente la chiamata del programma con echo:
for %%r in (*.rar) do @echo %%r
dove vedrai che %% r include gli spazi nei nomi dei file e non li separa.