Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch - Datei entpacken mit übergebenen Argument und umbenennen

Mitglied: Froschkoenig-LR

Froschkoenig-LR (Level 1) - Jetzt verbinden

18.10.2019 um 07:46 Uhr, 481 Aufrufe, 11 Kommentare

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.

01.
@echo off & setLocal
02.
set RARPATH=D:\WinRAR
03.

04.
for %%i in ("%~1\..") do set "Pfad=%%~dpi"
05.
for %%i in ("%~1") do set "DateiPfad=%%~dpi"
06.
for %%i in ("%~1") do set "DateiEndung=%%~xi"
07.
for %%i in ("%~1") do set "DateinameMitEndung=%%~nxi"
08.
for %%i in ("%~1") do set "DateinameOhneEndung=%%~ni"
09.

10.
set PfadRen=%DateiPfad%
11.
set PfadRenShort=%PfadRen:~0,-1%
12.
for %%f in (%PfadRenShort%) do set RenFolder=%%~nxf
13.
for %%f in (%Pfad%%DateinameOhneEndung%%DateiEndung%) do set DateiEndungRen=%%~xf
14.

15.
"%RARPATH%\unrar.exe" x %DateiPfad%%DateinameMitEndung% %Pfad%
16.

17.
for /r %%a in (%Pfad%%DateinameOhneEndung%) do (if "%%~na"=="%DateinameOhneEndung%" ren %Pfad%%DateinameMitEndung% %Pfad%%RenFolder%%DateiEndungRen%)
Vielen Dank.

SG
Mitglied: joehuaba
18.10.2019, aktualisiert um 08:08 Uhr
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:
01.
Rename-Item -Path "c:\directory\OLD-FILE-NAME.txt" -NewName "NEW-FILE-NAME.txt"
Parameter übergeben ganz einfach:
01.
param (
02.
[String]$var1="1",
03.
[String]$var2="2"
04.
)
05.
echo $var1
Bitte warten ..
Mitglied: Froschkoenig-LR
18.10.2019 um 09:28 Uhr
Hallo joehuaba,

danke für deine Antwort.

wäre es nicht viel einfacher dein Vorhaben mit PowerShell umzusetzen?

Naja, wenn man Powershell kennt bestimmt.

Ich würde es bevorzugen die Batch zu verwenden, es funktioniert lediglich das umbenennen der extrahierten Datei nicht.

SG
Bitte warten ..
Mitglied: Froschkoenig-LR
21.10.2019 um 23:15 Uhr
Guten Abend,

nach zahlreiche erfolglose Versuche wende ich mich noch einmal an euch.

Gibt es keine Lösungsansätze um die entpackte Datei umzubenennen?

Vielen Dank.
Bitte warten ..
Mitglied: joehuaba
22.10.2019 um 08:04 Uhr
Was genau funktioniert denn nicht?

Benennt er sie nicht richtig, oder macht er einfach gar nichts?
Du hast leider nichts genaues zu deinem Problem geschrieben.
Bitte warten ..
Mitglied: Froschkoenig-LR
22.10.2019, aktualisiert um 14:41 Uhr
Guten Morgen joehuaba,

ich habe diese Batch im Internet gefunden und getestet:

01.
@echo off
02.
for %%i in ("%~1\..") do set "Name=%%~nxi"
03.
for %%i in ("%~1\..\..") do set "Directory=%%~nxi"
04.
D:\WinRAR\UnRar.exe x %~1 %~d1\%Directory%\
05.
ren %~d1\%Directory%\%~n1 %Name%
Der Ablauf wie oben erwähnt:
Es wird ein Argument beim ausführen der Batch mitgegeben, z.B über cmd.exe.:
C:\Test.bat D:\Dir1\Dir2\dir2.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 nicht.

Habe nun festgestellt, dass über die Zeile
ren %~d1\%Directory%\%~n1 ...
nach dem "Archivnamen" gesucht wird, wobei der Name der entpackten Datei benötigt wird.
Bitte warten ..
Mitglied: joehuaba
22.10.2019 um 15:30 Uhr
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)
Bitte warten ..
Mitglied: Froschkoenig-LR
22.10.2019, aktualisiert um 17:02 Uhr
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?

Genau so soll der Ablauf sein.


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)

Das habe ich mir fast gedacht und auch schon getestet in der Mittagspause...nur funktioniert hat es noch nicht...
Mir ist nicht klar, wie ich die neue extrahierte Datei von anderen enthaltene Dateien in dem Verzeichnis unterscheiden kann.
Bitte warten ..
Mitglied: joehuaba
23.10.2019 um 07:59 Uhr
Mir ist nicht klar, wie ich die neue extrahierte Datei von anderen enthaltene Dateien in dem Verzeichnis unterscheiden kann.

Zur Not die Datei wo anders hin entpacken und danach wieder verschieben - oder wie auch immer.
Es gibt viele Möglichkeiten
Bitte warten ..
Mitglied: Froschkoenig-LR
23.10.2019, aktualisiert um 18:56 Uhr
Zur Not die Datei wo anders hin entpacken und danach wieder verschieben - oder wie auch immer.
Es gibt viele Möglichkeiten

Das ist mir durchaus bewusst, nur die passende zu finden...

Hab mich gestern Abend nochmal drangesetzt aber nicht mit Erfolg.

Ich finde zwar die neuste Datei, umbenannt wird diese auch aber nur wenn sie kleingeschrieben ist. (Der Verzeichnisname aus dem dearchiviert wird ist teilweise mit Großbuchstaben.)
Es kann aber auch ein völlig anderer Dateiname vorkommen, dann klappt das umbenennen nicht mehr...

Hier mein Batchinhalt:
01.
@echo on &setlocal
02.
for %%i in ("%~1\..") do set "Name=%%~nxi"
03.
for %%i in ("%~1\..\..") do set "Directory=%%~nxi"
04.

05.
D:\WinRAR\unrar.exe x %~1 %~d1\%Directory%\
06.

07.
pushd "%~d1\%Directory%" ||goto :eof
08.
for /f "delims=" %%a in ('dir /a-d /b /od "*.pdf" "*.xls"') do set "newestFile=%%~na"
09.
ren "%~d1\%Directory%\%newestFile%.*" "%Name%.*"
10.
popd
Kannst du dir vorstellen was falsch dran ist?
Bitte warten ..
Mitglied: joehuaba
23.10.2019 um 14:38 Uhr
Leider kenn ich mich mit Batch Befehlen nicht so aus, da müsste ich mich jetzt eindenken.
Sry.
Aber ich hoffe ich konnte dir trotzdem (zumindest ein bisschen) weiterhelfen.
Bitte warten ..
Mitglied: Froschkoenig-LR
23.10.2019 um 16:33 Uhr
Aber ich hoffe ich konnte dir trotzdem (zumindest ein bisschen) weiterhelfen.

Ich bin zumindest ein Schritt weiter, Geduld ist gefragt. 😉

Dir ein Dankeschön.

Vielleicht findet sich noch jemand der mich zum Fehler hinführen kann.
Aber auch ein überarbeiteter Code würde dankend entgegengenommen werden, ist etwas zusammengewürfelt ohne Struktur, das geht sicherlich noch anschaulicher. 😊
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BATCH ini Datei Datei auslesen
gelöst Frage von Juergen42Batch & Shell2 Kommentare

Hallo zusammen, ich möchte eine ini Datei auslesen mit folgenden Aufbau INHALT DER INI ID=30 NAME="test1" PFAD="K:\Kontoauszug\Test1\*.pdf" PFAD_S="K:\Kontoauszug\Test1\Sicherung\" ID=28 ...

Batch & Shell
Batch Datei Ordnerüberwachung
Frage von Phant0xBatch & Shell1 Kommentar

Hallo zusammen, könntet ihr mir helfen eine Batch Datei zu schreiben, die einen bestimmten Ordner kontrolliert, ob sich Dateien ...

Batch & Shell
Batch Datei - Hilfe!
gelöst Frage von freshman2017Batch & Shell4 Kommentare

Einen wunderschönen "Wahl"- Sonntag, ich habe wieder eine Frage; wer kann mir helfen? Ich habe eine Ausgangsdatei (.txt) mit ...

Batch & Shell

Verschachtelte FOR-Schleife mit einem Argument

gelöst Frage von mp-homeBatch & Shell3 Kommentare

Hallo Forum, ich versuche mehrere FOR-Schleifen in eine verschachtelte FOR-Schleife zu ändern. Leider scheine ich zu doof für dieses ...

Neue Wissensbeiträge
Windows 10
Die tickende DSGVO-Zeitbombe von Microsoft
Information von Frank vor 16 StundenWindows 104 Kommentare

Hier ein guter Beitrag von Golem.de zum Thema DSGVO und das Windows 10 aktuell nicht DSGVO konform ist! Das ...

Microsoft Office

Gebrandete OEM-Version von Office 2003 auf Nachfolgerechner installieren

Tipp von Lochkartenstanzer vor 17 StundenMicrosoft Office

Hallo Kollegen, gerade mal wieder ein Kundensystem mit Widows 10 in den Fingern gehabt, bei dem der Besitzer sein ...

Windows Server

Ein Feature, welches einem das Arbeiten mit Windows-2019-Coreservern erleichtern kann

Information von DerWoWusste vor 18 StundenWindows Server3 Kommentare

Man kann mittels Kommando nun folgendes auf Server 2019 in der Coreversion v1809 freischalten, so dass man es lokal ...

Windows 10
MS möchte offenbar lokale Konten abschaffen
Information von UweGri vor 1 TagWindows 1011 Kommentare

Guten Tag Admins, ab und an lese ich bei Dr.-Windows Bei dieser Meldung dachte ich, wird MS jetzt offen ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
MS-Hotline-Telefonterror
Frage von HenereErkennung und -Abwehr22 Kommentare

Servus zusammen, seit ca 3 Wochen haben wir immer wieder Anrufe von unbekannten Nummern, teils aus dem Ausland. Nach ...

Batch & Shell
Active Directory Picker - Get-ADGroup kann nicht in den Typ konvertiert werden
Frage von dispatcherBatch & Shell17 Kommentare

Mahlzeit zusammen, Im folgenden Skript erhalte ich immer die Meldung: Get-ADGroup : "System.Object " kann nicht in den Typ "Microsoft.ActiveDirectory.Management.ADGroup" ...

Windows Netzwerk
DNS und DHCP Server Einträge stimmen nicht überein
Frage von gabeBUWindows Netzwerk12 Kommentare

Hallo Zusammen Ich habe ein Problem bei meinen zwei DC's (Beide Windows Server 2012 64-Bit, virtualisiert über VMWARE). Seit ...

Windows 10
Windows 10 mit kaputtem .Net 4.8
Frage von krischeuWindows 1012 Kommentare

Hi, ich habe mit dem Programm ADDISON ein Stabilitätsproblem. Es stürzt regelmäßig während des Arbeitens ab. In der Ereignisanzeige ...