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
Please also mark the comments that contributed to the solution of the article
Content-Key: 506309
Url: https://administrator.de/contentid/506309
Printed on: April 25, 2024 at 17:04 o'clock
11 Comments
Latest comment
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)