Unbekannten Ordnernamen einlesen
Hallo zusammen,
ich habe eine batch-Datei (OhneQuellen.bat) geschrieben die im Verzeichnis (Rechte Maustaste - Senden an) liegt .
Dies hat folgenden zweck:
- ich klicke eine x-beliebige zip-Datei auf meinem Rechner über "Rechte Maustaste - Senden an - OhneQuellen.bat" an
z.B.: D:\Projekte\0705010 Kunde 1.zip
- Diese Datei soll dann ins Verzeichnis "D:\Projekte\Sonstige Arbeiten\Temp\OhneQuellen\" entpackt werden
Was dann wie folgt aus sieht:
D:\Projekte\Temp\OhneQuellen\0705010 Kunde 1\Ordner 1
D:\Projekte\Temp\OhneQuellen\0705010 Kunde 1\Test 1
D:\Projekte\Temp\OhneQuellen\0705010 Kunde 1\Sonstiges
usw.
- In dem Ordner 0705010 Kunde 1 soll nun der Ordner "Test 1" mit Unterordnern und Dateien gelöscht werden.
- Dann soll der Ordner "0705010 Kunde 1" wieder gezippt werden zu "0705010 Kunde 1 ohne Quellen.zip"
- Und in das Verzeichnis verschoben werden aus dem die original Datei kommt also nach "D:\Projekte\"
Jetzt zu meinem Problem:
Wenn die Datei entzippt wird, weiss ich nicht wie der neu entstandene Ordner heisst da dieser nicht immer gleich dem Namen der zip-Datei ist.
Kann man diesen Ordnernamen (in meinem Beispiel der Ordner "0705010 Kunde 1") einlesen und in der Batchdatei verwenden? Und wenn ja wie?
Danke und Gruss Hausen
ich habe eine batch-Datei (OhneQuellen.bat) geschrieben die im Verzeichnis (Rechte Maustaste - Senden an) liegt .
Dies hat folgenden zweck:
- ich klicke eine x-beliebige zip-Datei auf meinem Rechner über "Rechte Maustaste - Senden an - OhneQuellen.bat" an
z.B.: D:\Projekte\0705010 Kunde 1.zip
- Diese Datei soll dann ins Verzeichnis "D:\Projekte\Sonstige Arbeiten\Temp\OhneQuellen\" entpackt werden
Was dann wie folgt aus sieht:
D:\Projekte\Temp\OhneQuellen\0705010 Kunde 1\Ordner 1
D:\Projekte\Temp\OhneQuellen\0705010 Kunde 1\Test 1
D:\Projekte\Temp\OhneQuellen\0705010 Kunde 1\Sonstiges
usw.
- In dem Ordner 0705010 Kunde 1 soll nun der Ordner "Test 1" mit Unterordnern und Dateien gelöscht werden.
- Dann soll der Ordner "0705010 Kunde 1" wieder gezippt werden zu "0705010 Kunde 1 ohne Quellen.zip"
- Und in das Verzeichnis verschoben werden aus dem die original Datei kommt also nach "D:\Projekte\"
Jetzt zu meinem Problem:
Wenn die Datei entzippt wird, weiss ich nicht wie der neu entstandene Ordner heisst da dieser nicht immer gleich dem Namen der zip-Datei ist.
Kann man diesen Ordnernamen (in meinem Beispiel der Ordner "0705010 Kunde 1") einlesen und in der Batchdatei verwenden? Und wenn ja wie?
Danke und Gruss Hausen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 104290
Url: https://administrator.de/contentid/104290
Ausgedruckt am: 13.11.2024 um 09:11 Uhr
11 Kommentare
Neuester Kommentar
Servus,
Hintergrund - wenn ich deine Frage richtig interpretiere.
Wenn du schon beim anlegen der Zip den Ursprungs Pfad berücksichtigst - ist das entpacken und damit das herausfinden, woher die Zips Stammen - "einfacher".
Gruß
ich habe eine batch-Datei (OhneQuellen.bat) geschrieben
Aha - kannst du uns die zur Verfügung stellen - oder sollen wir das rad von vorne erfinden?Hintergrund - wenn ich deine Frage richtig interpretiere.
Wenn du schon beim anlegen der Zip den Ursprungs Pfad berücksichtigst - ist das entpacken und damit das herausfinden, woher die Zips Stammen - "einfacher".
Gruß
Hallo Hausen und willkommen im Forum!
Die "billigste" Lösung wäre wohl, einen temporären Ordner (in dem sich nach dem Entzippen dann nur die Daten dieses einen Kunden befinden können) zu verwenden, und von diesem Ordner aus das restliche Handling vorzunehmen.
Den Kundenordner findest Du über
Grüße
bastla
Die "billigste" Lösung wäre wohl, einen temporären Ordner (in dem sich nach dem Entzippen dann nur die Daten dieses einen Kunden befinden können) zu verwenden, und von diesem Ordner aus das restliche Handling vorzunehmen.
Den Kundenordner findest Du über
for /d %%i in ("D:\TempOrdner\*.*") do set "Ordner=%%i"
bastla
Hallo Hausen!
Da ich kein WinZip verwende, kann ich Dir leider die entsprechende Option nicht nennen - es könnte "-pr" oder etwas in der Art sein (für WinRAR wäre es zB "-ep" für "Exclude paths from names").
Du solltest den entsprechenden Schalter aber durch Aufruf der Online-Hilfe über zB
oder
selbst herausfinden können ...
Grüße
bastla
Da ich kein WinZip verwende, kann ich Dir leider die entsprechende Option nicht nennen - es könnte "-pr" oder etwas in der Art sein (für WinRAR wäre es zB "-ep" für "Exclude paths from names").
Du solltest den entsprechenden Schalter aber durch Aufruf der Online-Hilfe über zB
wzzip /?
wzzip -help
Grüße
bastla
Moin Hausen,
Erstens, bitte die geeignete (hier: die Code-)Formatierung benutzen wie beschrieben.
Zweitens, die Zeile wie folgt abändern:
Dadurch wird nur der Name des "letzten" Ordners übernommen.
Grüße
Biber
Kann ich den Befehl irgendwie abändern?
Jepp, sogar zweifach.Erstens, bitte die geeignete (hier: die Code-)Formatierung benutzen wie beschrieben.
Zweitens, die Zeile wie folgt abändern:
for /d %%i in (%Ziel%\*.*) do set "Projektname=%%~nxi"
Dadurch wird nur der Name des "letzten" Ordners übernommen.
Grüße
Biber
Hallo Hausen!
Noch eine Anmerkung zur letzten Zeile: Falls "wzzip.exe" einen definierten Errorlevel liefert, könntest Du diesen verwenden, um nur bei erfolgreichem Entpacken der Datei die alten Daten zu löschen - etwa so:
oder
Grüße
bastla
Noch eine Anmerkung zur letzten Zeile: Falls "wzzip.exe" einen definierten Errorlevel liefert, könntest Du diesen verwenden, um nur bei erfolgreichem Entpacken der Datei die alten Daten zu löschen - etwa so:
if not errorlevel 1 rd /s /q %Quelle%"\%Projektname% [Kunde]"
if errorlevel 1 (
echo Fehler beim Entpacken!
pause>nul
goto :eof
)
rd /s /q %Quelle%"\%Projektname% [Kunde]"
bastla