thomas1982
Goto Top

Via Batch im Unterordner Zip Dateien entpacken und anschließend löschen

Hallo zusammen,

ich habe folgendes Szenario: Auf einem Windows Server werden nachts 56 Dateien als Datensicherung bereitgestellt. Diese werden morgens im selben Ordner manuell entpackt, die zip Dateien gelöscht.

Dateistruktur sieht in etwa so aus:
Hauptordner
(...)
|-20131119
|-20131120
|-20131121
(...)
In diesen Unterordner liegen dann am jeweiligen Tag die 56 zip Dateien. Zum entpacken nutze ich 7zip.

Nun habe ich folgendes programmiert:

@echo off

for /f "delims=" %%f in ('dir . /B /O:-N') do (


for /f "delims=" %%x in ('dir "%%f\*.zip" /B') do (
C:\Programme\7-Zip\7z.exe x "%%f\*.zip" -o"%%f\*"
for /F "delims=" %%a in ('dir /b /aD') do del /Q "%%a\*.zip"
)
)
goto :end
)
:end

TEST.CMD >> %d%Log.log

Er macht, was er soll: Er entpackt und löscht danach (oder währenddessen??) die zip Dateien... ABER: Er sagt mir dann ständig danach "Datei nicht gefunden" obwohl er doch fertig ist! Irgendwo hängt die Schleife und wiederholt sich warum auch immer.
Könnt ihr den Fehler entdecken? Ich glaube ich bin grad "Code-Blind"

Die Ausgabe sieht wie folgt aus:

C:\Users\[Mein Name]\Desktop\Testordner>TEST.CMD
Datei nicht gefunden
Datei nicht gefunden
Datei nicht gefunden
Datei nicht gefunden

7-Zip 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03

Processing archive: 20130709\Logs_sB1.20130709.zip

Extracting sB1_MODUL1_MAIL_20130709.log
Extracting sB1_MODUL2_MAILAUSSENDER_20130709.log
Extracting sB1_MODUL3_M3_20130709.log
Extracting sB1_MODULPV_20130709.log

Everything is Ok

Processing archive: 20130709\Logs_sB2.20130709.zip

Extracting sB2_MODUL1_MAIL_20130709.log
Extracting sB2_MODUL3_M3_20130709.log

Everything is Ok

Processing archive: 20130709\Logs_sB3.20130709.zip

Extracting sB3_MODUL1_MAIL_20130709.log
Extracting sB3_MODUL3_M3_20130709.log

Everything is Ok

Processing archive: 20130709\Logs_sB4.20130709.zip

Extracting sB4_MODUL1_MAIL_20130709.log
Extracting sB4_MODUL3_M3_20130709.log

Everything is Ok

Processing archive: 20130709\Logs_sB5.20130709.zip

Extracting sB5_MODUL1_MAIL_20130709.log
Extracting sB5_MODUL3_M3_20130709.log

Everything is Ok

Processing archive: 20130709\Logs_sB6.20130709.zip

Extracting sB6_MODUL1_MAIL_20130709.log
Extracting sB6_MODUL3_M3_20130709.log

Everything is Ok

Archives: 6
Files: 14
Size: 288648779
Compressed: 12476200

7-Zip 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03


Error:
there is no such archive
C:\Users\[Mein Name]\Desktop\Testordner\20130709\*.zip konnte nicht gefun
den werden

7-Zip 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03


Error:
there is no such archive
C:\Users\[Mein Name]\Desktop\Testordner\20130709\*.zip konnte nicht gefun
den werden

7-Zip 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03


Error:
there is no such archive
C:\Users\[Mein Name]\Desktop\Testordner\20130709\*.zip konnte nicht gefun
den werden

7-Zip 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03


Error:
there is no such archive
C:\Users\[Mein Name]\Desktop\Testordner\20130709\*.zip konnte nicht gefun
den werden

7-Zip 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03


Error:
there is no such archive
C:\Users\[Mein Name]\Desktop\Testordner\20130709\*.zip konnte nicht gefun
den werden
Datei nicht gefunden
Datei nicht gefunden
Datei nicht gefunden
Datei nicht gefunden
Datei nicht gefunden
(...)


Vorab Vielen Dank und
Viele Grüße
Thomas

Content-Key: 222738

Url: https://administrator.de/contentid/222738

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: Endoro
Endoro 22.11.2013 um 18:11:29 Uhr
Goto Top
Hey Thomas, in deiner ersten for-Schleife fehlt ein Parameter: dir /B /O-N /AD , sonst werden auch Dateien gefunden und die haben keine Unterordner face-smile
lg.
Mitglied: Thomas1982
Thomas1982 25.11.2013 um 10:19:13 Uhr
Goto Top
Zitat von @Endoro:

Hey Thomas, in deiner ersten for-Schleife fehlt ein Parameter: dir /B /O-N /AD , sonst werden auch Dateien gefunden und die
haben keine Unterordner face-smile
lg.

Hallo Endoro,

schonmal vielen Dank, ich habe den Parameter geändert. Leider passiert aber nichts anderes, wenn ich die CMD dann starte: Er entpackt die Dateien, löscht sie und dann erscheint wieder der Error dass er die Datei nicht finden kann. Wie in einer Dauerschleife (Siehe ausgabe oben) Ich muss dann mit Strg+C abbrechen.

Habe ich die Schleifen irgendwie falsch positioniert? Für mich sieht das richtig aus.. Oder kann man irgendwie sagen, dass wenn er keine *.zip mehr findet beenden soll...?

LG
Thomas
Mitglied: Thomas1982
Thomas1982 25.11.2013 um 10:27:30 Uhr
Goto Top
btw nochmal der aktuelle Code:

@echo off

for /f "delims=" %%f in ('dir /B /O-N /aD') do (


for /f "delims=" %%x in ('dir "%%f\*.zip" /B') do (
C:\Programme\7-Zip\7z.exe x "%%f\*.zip" -o"%%f\*"
for /F "delims=" %%a in ('dir /b /aD') do del /Q "%%a\*.zip"
)
)
goto :end
)
:end


TEST.CMD >> %d%Log.log
Mitglied: WinCobold
WinCobold 25.11.2013 um 16:00:21 Uhr
Goto Top
Hallo Thomas,

Wenn du das "echo off" rausnimst, siehst du vielleicht selbst, was schief läuft (Tipp: du machst dir kein X für ein U vor, sondern ein f und ein a für ein x).

Gruß
WinCobold