Batch - Datei entpacken mit übergebenen Argument und umbenennen
Guten Morgen,
ich beise mir gerade die Zähne an einem Batch-Quellcode aus, kann mir jemand weiterhelfen?
Ablauf:
Es wird ein Argument beim ausführen der Batch mitgegeben, z.B über cmd.exe.:
C:\Test.bat D:\Dir1\Dir2\Testfile-local.rar
Das entpacken in das vorherige Verzeichnis "Dir1" funktioniert, allerdings soll nur der Name der entpackten Datei mit dem Verzeichnisname (in diesem Fall "Dir2") umbenannt werden und das funktioniert noch nicht.
In der letzten Zeile muss der Hund begraben liegen.
Vielen Dank.
SG
ich beise mir gerade die Zähne an einem Batch-Quellcode aus, kann mir jemand weiterhelfen?
Ablauf:
Es wird ein Argument beim ausführen der Batch mitgegeben, z.B über cmd.exe.:
C:\Test.bat D:\Dir1\Dir2\Testfile-local.rar
Das entpacken in das vorherige Verzeichnis "Dir1" funktioniert, allerdings soll nur der Name der entpackten Datei mit dem Verzeichnisname (in diesem Fall "Dir2") umbenannt werden und das funktioniert noch nicht.
In der letzten Zeile muss der Hund begraben liegen.
@echo off & setLocal
set RARPATH=D:\WinRAR
for %%i in ("%~1\..") do set "Pfad=%%~dpi"
for %%i in ("%~1") do set "DateiPfad=%%~dpi"
for %%i in ("%~1") do set "DateiEndung=%%~xi"
for %%i in ("%~1") do set "DateinameMitEndung=%%~nxi"
for %%i in ("%~1") do set "DateinameOhneEndung=%%~ni"
set PfadRen=%DateiPfad%
set PfadRenShort=%PfadRen:~0,-1%
for %%f in (%PfadRenShort%) do set RenFolder=%%~nxf
for %%f in (%Pfad%%DateinameOhneEndung%%DateiEndung%) do set DateiEndungRen=%%~xf
"%RARPATH%\unrar.exe" x %DateiPfad%%DateinameMitEndung% %Pfad%
for /r %%a in (%Pfad%%DateinameOhneEndung%) do (if "%%~na"=="%DateinameOhneEndung%" ren %Pfad%%DateinameMitEndung% %Pfad%%RenFolder%%DateiEndungRen%)
Vielen Dank.
SG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 506309
Url: https://administrator.de/contentid/506309
Ausgedruckt am: 24.11.2024 um 05:11 Uhr
11 Kommentare
Neuester Kommentar
Guten Morgen @Froschkoenig-LR,
wäre es nicht viel einfacher dein Vorhaben mit PowerShell umzusetzen?
ZIP-Entpacken ganz einfach:
https://www.itnator.net/zip-entpacken-per-powershell-so-funktionierts/
Datei umbenennen ganz einfach:
Parameter übergeben ganz einfach:
wäre es nicht viel einfacher dein Vorhaben mit PowerShell umzusetzen?
ZIP-Entpacken ganz einfach:
https://www.itnator.net/zip-entpacken-per-powershell-so-funktionierts/
Datei umbenennen ganz einfach:
Rename-Item -Path "c:\directory\OLD-FILE-NAME.txt" -NewName "NEW-FILE-NAME.txt"
Parameter übergeben ganz einfach:
param (
[String]$var1="1",
[String]$var2="2"
)
echo $var1
In der Zeile 4 entpackst du die .zip Datei, beziehungsweise die .rar Datei.
In der Zeile 5 möchtest du das Verzeichnis umbenennen, welches den Namen der entpackten Datei haben soll.
Habe ich das richtig verstanden?
Wenn es so ist kann das nicht funktionieren, da du den Namen der entpackten Datei derzeit noch nicht hast.
Du musst also nach dem Entpacken (Zeile 4) noch den Namen der entpackten Datei ermitteln.
Danach kannst du umbenennen (Zeile 5)
In der Zeile 5 möchtest du das Verzeichnis umbenennen, welches den Namen der entpackten Datei haben soll.
Habe ich das richtig verstanden?
Wenn es so ist kann das nicht funktionieren, da du den Namen der entpackten Datei derzeit noch nicht hast.
Du musst also nach dem Entpacken (Zeile 4) noch den Namen der entpackten Datei ermitteln.
Danach kannst du umbenennen (Zeile 5)