Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

office-nutzer

Cadet 1st Year
Registriert
Dez. 2016
Beiträge
13
Hallo zusammen,

ich habe nachfolgenden Code, der mir verpackte Dateien entpackt.
Code:
for /R "C:\Users\marc\Documents\Neuer Ordner" %%I in ("*.zip", "*.rar") do (
  "C:\Programme\7-Zip\7z.exe" x -y -o"%%~dpnI" "%%~fI" 
)
pause

Da ich jedoch mehrere Dateien habe, die ich entpacken will, sollen die entpackten Dateien auch umbenannt werden. So soll es leichter sein diese später entsprechend wieder zuordnen zu können.

Wie stelle ich es jetzt also an, dass ich die aktuell entpackten Dateien auch gleichtzeitig umbenenne? Und zwar nach dem Namen der rar-/zip-Datei aus der sie entpackt worden.

Viele Grüße
 
In eigene Ordner entpacken keine Option?
 
Danke für die Rückmeldung. Das Entpacken in eigene Ordner macht der obenstehende Code bereits. Ich will jedoch, dass die jetzt entpackten Dateien in dem Ordner auch denselben Namen haben wie der Ordner. Wie benenne ich diese mit einem entsprechenden batch-Befehl um?
 
Mein Code sieht jetzt wie folgt aus:
Code:
for /R "D:\Neuer Ordner" %%I in ("*.zip", "*.rar") do (
  "C:\Program Files\7-Zip\7z.exe" x -y -o"%%~dpnI" "%%~fI" 
)
pause

@ECHO OFF
SETLOCAL enabledelayedexpansion
SET startfrom=D:\Neuer Ordner
SET destdir=D:\Neuer Ordner
FOR /f "delims=" %%i IN ('dir /s /b "%startfrom%\index.*"') DO (
 FOR %%e IN (jpg html pdf) DO IF /i .%%e==%%~xi (
  FOR %%d IN ("%%~dpi.") DO (
   SET "var=%%~nxd"
   IF "!var:~6!"=="" (
    SET "var="
    SET /a var=1%%~nxd 2>NUL
    IF DEFINED var IF !var! geq 1000000 IF !var! leq 1999999 (
     ECHO MOVE "%%i" "%destdir%\%%~nxd%%~xi"
    )
   )
  )
 )
)
pause
Leider kommt bei mir dann die Meldung "Datei nicht gefunden".


Wieso findet er die Datei nicht? Ich bin da mit dem Code echt überfordert, auch wenn er so einfach aussieht.
 
Zuletzt bearbeitet:
Ohne, dass ich mir alles angucke, würde ich mal raten, dass in Zeilen 8 und 9 der Pfad in Anführungszeichen muss.
Also "D:\Neuer Ordner"
 
Die Fehlermeldung sieht zwar jetzt anders aus, doch besser ist es leider nicht. Da steht jetzt: Das System kann die angegebene Datei nicht finden :(
 
Dann streiche mal Zeile 6 oder schreibe statt "Echo off" "Echo on" und zeige dann mal die Konsolenausgabe.

Edit: Ich hab mal kurz drübergeschaut. Liegen denn in "D:\Neuer Ordner"direkt überhaupt irgendwelche .html .jpg oder .pdf-Dateien?
Wenn du erst noch weitere Unterordner hast würde ich eher mal die Variante der ersten Antwort des von alxtraxxx verlinkten Threads testen, also die, die mit popd die Unterverzeichnisse durchgeht.

Und hast du eigentlich sichergestellt, dass immer nur eine Datei in den den entpackten Ordnern liegt? Du kannst schließlich nicht Ordnername\Bild1.jpg und Ordnername\Bild2.jpg beide in Ordnername\Ordnername.jpg umbenennen.

Edit2:
So, nochmal kurz was getestet.
Code:
REM entpacken mit 7-zip


CD /D "D:\Neuer Ordner"
@Echo off

FOR /D /R %%a in (*) DO (
    PUSHD "%%a"
    FOR %%b in ("*") DO (
        Ren "%%b" "%%~na%%~xb"
    )
    POPD
)

Pause
sollte tun, was du willst. Eine Datei "D:\Neuer Ordner\Unterordner1\abcd.xxx" wird damit umbenannt in "D:\Neuer Ordner\Unterordner1\Unterordner1.xxx" wenn mehrere Dateien mit derselben Dateiendung in einem Unterordner sind, wird nur eine davon umbenannt.
 
Zuletzt bearbeitet:
Zurück
Oben