Batch rar und der Dateiname
Guten Tag,
ich habe eine Aufgabe meines Ausbilder bekommen und versuche mich gerade zum ersten mal! an Batch Dateien.
cd D:\PL
C:\"Program Files\WinRAR\Rar.exe" a -agDD-MMM-YYYY -df .rar
pause
soweit bin ich gekommen ;)
Nun hätte ich noch gern das die rar den Namen des letzten Ordners annimmt wo die Daten drin liegen die ich zipe.
Gift es da eine Möglichkeit?
Danke für die Hilfe!
ich habe eine Aufgabe meines Ausbilder bekommen und versuche mich gerade zum ersten mal! an Batch Dateien.
cd D:\PL
C:\"Program Files\WinRAR\Rar.exe" a -agDD-MMM-YYYY -df .rar
pause
soweit bin ich gekommen ;)
Nun hätte ich noch gern das die rar den Namen des letzten Ordners annimmt wo die Daten drin liegen die ich zipe.
Gift es da eine Möglichkeit?
Danke für die Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 287493
Url: https://administrator.de/forum/batch-rar-und-der-dateiname-287493.html
Ausgedruckt am: 06.04.2025 um 03:04 Uhr
17 Kommentare
Neuester Kommentar
Hallo,
http://acritum.com/software/manuals/winrar/
Gruß,
Peter
Zitat von @Fastbyte23:
Nun hätte ich noch gern das die rar den Datei Namen der Datei annimmt die ich zipe.
Warum nimmst du dann -ag?Nun hätte ich noch gern das die rar den Datei Namen der Datei annimmt die ich zipe.
Gift es da eine Möglichkeit?
Ja. Rar /? oder hier http://acritum.com/software/manuals/winrar/html/helpcmda.htmhttp://acritum.com/software/manuals/winrar/
Gruß,
Peter
Hallo,
Dann musst du dir das so bauen das der Name beim Erstellen so benannt wird oder nach dem Packen eben den Namen umbenennen. beides geht mit Batch problemlos. Beispiele hier im Forum zur genüge.
Gruß,
Peter
Dann musst du dir das so bauen das der Name beim Erstellen so benannt wird oder nach dem Packen eben den Namen umbenennen. beides geht mit Batch problemlos. Beispiele hier im Forum zur genüge.
also auch nicht wirklich weil ich da schon geschaut habe und keine Option passen will.
Entschuldige, aber ich habe nicht gewusst das du dort schon gewesen bist und dort auch gelesen hast...Gruß,
Peter
Hallo,
Dann suche nach Batch.
hiermit wird der letzte Dateiname ausgelesen und in der Variable (Sitzung) ZuZippen gespeichert. Damit kann in der Sitzung weiter gearbeitet werden.
Und eine Möglichkeit Datum sowie Uhrzeit in Batch abzufragen istEine Anlaufstelle für Batch ist http://www.robvanderwoude.com/batchstart.php
Gruß,
Peter
Dann suche nach Batch.
hättest du vllt einen Link zu einem Thread hier im Forum wo ich das nachlesen kann?
Nein, aber den Hinweis den Namen der Datei vorher auszulesen und dann weiter zu verarbeiten.for /f "delims=" %%S in ('dir /b "D:\PL\*.*"') do set "ZuZippen=%%~nS"
set
pause
Und eine Möglichkeit Datum sowie Uhrzeit in Batch abzufragen ist
cls
Time /t
Date /t
pause
Gruß,
Peter
Hey,
an der Kommandozeile würde das so aussehen:
Für eine Batch müssen die Prozentzeichen verdoppelt werden. Die "et" können weggelassen werden. Zum Scharfstellen noch "echo" löschen. Funktioniert nicht unter XP ohne WMI.
Gruß, Endoro
an der Kommandozeile würde das so aussehen:
for /f "tokens=2delims==" %a in ('wmic path Win32_operatingsystem get localdatetime /format:value') do @for /f %b in ("%~a") do @set "datetime=%~b"&for /f %c in ("%datetime:~6,2%-%datetime:~4,2%-%datetime:~0,4%") do @for %d in (*.txt) do @echo rar a "%~c-%~nd" "%~d"
Gruß, Endoro
Hallo Fastbyte23!
Wenn Du ohnehin schon per
Wolltest Du das allerdings variabel (und bezogen auf den aktuellen Ordner) umsetzen, dann eben
bzw kürzer
oder noch kürzer (
Das "PL" in "D:\PL" wird (als letzter Teil des Pfades) quasi als "Dateiname" betrachtet. Um auch für den Fall vorzusorgen, dass ein Punkt in diesem Namen enthalten wäre, wird zur Sicherheit auch die Extension mit einbezogen ...
Infos findest Du einerseits zB per
bzw im sehr empfehlenswerten Tutorial zur FOR-Schleife von Friemler ...
Grüße
bastla
P.S.: Dass das so nur funktioniert, wenn der Quellordner nicht ein Root-Ordner wie "D:\" ist, wäre ggf auch noch zu beachten ...
Wenn Du ohnehin schon per
cd D:\PL
(sollte übrigens besser cd /d D:\PL
lauten) den Quellordner vorgibst, kannst Du dessen Namen ja auch in die RAR-Anweisung schreiben:"C:\Program Files\WinRAR\Rar.exe" a -agDD-MMM-YYYY -df PL_.rar
for /f "delims=" %%i in ("%CD%") do set "Ordnername=%%~nxi"
"%ProgramFiles%\WinRAR\Rar.exe" a -agDD-MMM-YYYY -df "%Ordnername%_.rar"
for /f "delims=" %%i in ("%CD%") do "%ProgramFiles%\WinRAR\Rar.exe" a -agDD-MMM-YYYY -df "%%~nxi_.rar"
.
ist immer der gerade aktuelle Ordner) :for %%i in (.) do "%ProgramFiles%\WinRAR\Rar.exe" a -agDD-MMM-YYYY -df "%%~nxi_.rar"
Infos findest Du einerseits zB per
cd /?
for /?
Grüße
bastla
P.S.: Dass das so nur funktioniert, wenn der Quellordner nicht ein Root-Ordner wie "D:\" ist, wäre ggf auch noch zu beachten ...
Hallo Fastbyte23!
Wo sollen denn die Archivdateien erstellt werden - in den Unterordnern oder alle in "D:\CommissionPath"? (Sofern es übrigens nur um Dateien eines bestimmten Typs - in Deinem Beispiel PDF - geht, würde ich diesen Typ zur Sicherheit auch mit angeben.)
Für den ersten Fall würde ich das (ungetestet) etwa so anlegen:
Falls Du die Ausgabe von WinRAR nicht angezeigt haben willst, wäre an die Zeile noch
Wenn alle RAR-Dateien in "D:\CommissionPath" liegen sollen, ginge das noch etwas einfacher (ebenfalls ungetestet):
Noch ein Hinweis: Es werden in dieser Variante (im Gegensatz zu
Grüße
bastla
Wo sollen denn die Archivdateien erstellt werden - in den Unterordnern oder alle in "D:\CommissionPath"? (Sofern es übrigens nur um Dateien eines bestimmten Typs - in Deinem Beispiel PDF - geht, würde ich diesen Typ zur Sicherheit auch mit angeben.)
Für den ersten Fall würde ich das (ungetestet) etwa so anlegen:
@echo off & setlocal
set "Startordner=D:\CommissionPath"
set "ZIPProg=%ProgramFiles%\WinRAR\Rar.exe"
set "Typ=pdf"
for /d %%i in ("%Startordner%\*") do (
echo Bearbeite "%%i"
if not exist "%%~i\%%~nxi.rar" "%ZIPProg%" a -agDD-MMM-YYYY "%%~i\%%~nxi_.rar" -df -ep "%%~i\*.%Typ%"
)
echo Fertig.
Pause
>nul
anzufügen ...Wenn alle RAR-Dateien in "D:\CommissionPath" liegen sollen, ginge das noch etwas einfacher (ebenfalls ungetestet):
@echo off & setlocal
set "Startordner=D:\CommissionPath"
set "ZIPProg=%ProgramFiles%\WinRAR\Rar.exe"
set "Typ=pdf"
for /d %%i in ("%Startordner%\*") do (
echo Bearbeite "%%i"
if not exist "%%~nxi.rar" "%ZIPProg%" a -agDD-MMM-YYYY "%%~nxi_.rar" -df -ep "%%~i\*.%Typ%"
)
echo Fertig.
Pause
for /d /r
) nur die unmittelbaren Unterordner des Startordners, nicht aber etwaige Unter-Unterordner, verarbeitet ...Grüße
bastla
Hallo Fastbyte 23!
Wird's mit der folgenden (natürlich ungetesteten
) Zeile 9 besser?
Grüße
bastla
P.S.: Zeile 2 würde bei mir eher so aussehen:
und außerdem hieße die Variable nicht "NAME" sondern "Datum" ...
Wird's mit der folgenden (natürlich ungetesteten
if not exist "%NAME%_%%~i\%%~nxi.7z" "%ZIPProg%" a "%NAME%_%%~i\%%~nxi_.7z" -sdel -an "%%~i\*.%Typ%"
bastla
P.S.: Zeile 2 würde bei mir eher so aussehen:
set "NAME=%date:~-4%-%date:~-7,2%-%date:~-10,2%"
Hallo Fastbyte23!
Das Datum vor dem Laufwerksbuchstaben kann ja nicht funktionieren - hätte mir schon aufgefallen sein sollen ...
Dann also so:
oder so:
Grüße
bastla
Das Datum vor dem Laufwerksbuchstaben kann ja nicht funktionieren - hätte mir schon aufgefallen sein sollen ...
Dann also so:
if not exist "%%~i\%NAME%_%%~nxi.7z" "%ZIPProg%" a -sdel -t7z "%%~i\%NAME%_%%~nxi.7z" "%%~i\*.%Typ%"
if not exist "%%~i\%%~nxi_%NAME%.7z" "%ZIPProg%" a -sdel -t7z "%%~i\%%~nxi_%NAME%.7z" "%%~i\*.%Typ%"
bastla