Batch-Extrakt RARS mit Leerzeichen in Namen
-
03-07-2019 - |
Frage
ich Batch versuche einige rar ist zu extrahieren, die in einigen Verzeichnissen in einigen zip sind. Lange Rede kurzer Sinn ist dies meine Schleife durch die rar-Dateien:
for %%r in (*.rar) do (
unrar x %%r
)
Das Problem ist, dass %% r den falschen Wert bekommt. Wenn die Dateien Namen „Datei name.rar“ sind dann %% r den Wert „file“ wird -. Es auf dem ersten Platz hält in dem Dateinamen
Wie erhalte ich diese Schleife Datei Dateien mit Leerzeichen im Namen zu arbeiten?
Danke
Lösung
Versuchen Sie folgendes:
for /f "usebackq delims==" %i in (`dir /b *.rar`) do unrar x "%i"
Wenn Sie es in einer Batch-Datei verwenden, erinnern Sie müssen die Prozentzeichen verdoppeln ihnen zu entkommen.
Andere Tipps
%%r
wird die vollständigen Dateinamen einschließlich Leerzeichen enthalten. Es ist Ihr Anruf unrar
die das Problem hat. Wenn der Dateiname Leerzeichen enthält, müssen Sie es in Anführungszeichen gesetzt werden, sonst unrar
nicht in der Lage sein, zu sehen, dass die beiden (durch Leerzeichen getrennte) Parameter file
und name.rar
sind tatsächlich ein einzelner Dateiname mit einem Leerzeichen.
So folgendes funktioniert:
for %%r in (*.rar) do unrar "%%r"
Auch wenn Sie aer neugierig, wo das Problem liegt, ist es manchmal sehr hilfreich, um einfach den Programmaufruf mit Echo ersetzen:
for %%r in (*.rar) do @echo %%r
, wo Sie werden sehen, dass %% r die Leerzeichen in Dateinamen enthalten sind und sie nicht auseinander reißen.