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

Automatisches Löschen von Dateien nach Abgleich mit Inhalt von Zip Dateien

Mitglied: cbli

cbli (Level 1) - Jetzt verbinden

29.11.2006, aktualisiert 01.12.2006, 4888 Aufrufe, 4 Kommentare

Ersteinmal sorry ,daß ich hierfür einen neuen Thread aufmache,aber der alte ist geschlossen.
Es geht um


https://www.administrator.de/Automatisches_Verschieben_von_Dateiinhalten ...

Im speziellen um diese Zeile

for /f "tokens=3" %%k in ('7za l -slt "D:\temp\lager\*.zip" ^| findstr /C:"Path = "') do if exist "C:\Programme\verarbeitet\%%k" del /q "C:\Programme\verarbeitet\%%k"

Hier wird nach dem Abgleich der Inhalte der Zip Dateien in D:\temp\lager\*.zip mit Dateien im
Verzeichnis C:\Programme\verarbeitet alle Übereinstimmungen in C:\Programme\verarbeitet gelöscht.

Hat auch wunderbar funktioniert,nur habe ich vorhin die Batch , nachdem der Thread geschlossen wurde, mit neuen Zip Dateien ausgeführt.
Bei diesen Zips waren nun Dateien dabei ,die ein Leerzeichen im Namen haben (hatte dies leider vergessen zu testen).
Diese werden nun leider nicht gelöscht. Wie ändere ich obige Zeile damit auch wirklich komplett alles gelöscht wird.
Dieser Thread könnte dann später entweder gelöscht oder wenn möglich in den Ursprungsthread verschoben werden.

Danke nochmals und sorry

Gruß
Claus
Mitglied: Biber
29.11.2006 um 13:26 Uhr
Moin cbli,

Für diesen Fall so erweitern:
01.
...
02.
for /f "tokens=3*" %%k in ('7za l -slt "D:\temp\lager\*.zip" ^| findstr /C:"Path = "') do (
03.
 if [%%l]==[] (
04.
   if exist "C:\Programme\verarbeitet\%%k" del /q "C:\Programme\verarbeitet\%%k"
05.
  ) ELSE (
06.
   if exist "C:\Programme\verarbeitet\%%k %%l" del /q "C:\Programme\verarbeitet\%%k %%l"
07.
)
[Die neue Zählvariable ist ein kleines "L", d.h. die auf ""K" folgende.]
Ginge auch kürzer, aber so ist es lesbarer.

Grüße
Biber
Bitte warten ..
Mitglied: cbli
29.11.2006 um 14:17 Uhr
Moin cbli,

Für diesen Fall so erweitern:
01.
...
02.
> for /f "tokens=3*" %%k in ('7za l
03.
> -slt "D:\temp\lager\*.zip" ^|
04.
> findstr /C:"Path = "') do (
05.
>  if [%%l]==[] (
06.
>    if exist
07.
> "C:\Programme\verarbeitet\%%k" del
08.
> /q "C:\Programme\verarbeitet\%%k"
09.
>   ) ELSE (
10.
>    if exist
11.
> "C:\Programme\verarbeitet\%%k %%l"
12.
> del /q "C:\Programme\verarbeitet\%%k
13.
> %%l"
14.
> )
15.
> 
[Die neue Zählvariable ist ein kleines
"L", d.h. die auf
""K" folgende.]
Ginge auch kürzer, aber so ist es
lesbarer.

Nachdem ich noch ein ) am Ende eingefügt hatte, gings wunderbar.
Funktioniert jetzt mit allen Dateien egal ob mit oder ohne Leerzeichen im Dateinamen.
Habs auch gleich mit Sonderzeichen getestet und geht auch.
Trotzdem sind noch 2 Fragen (glaube du würdest dich auch wundern wenn ich nicht nachhaken würde ) enstanden:

1. Wie sieht die kürzere Version aus ?

2. Wie sähe der Code aus wenn keine Übereinstimmungen da sind (also nix gelöscht werden kann) und ich auf das hin überprüfen will
Ist nicht so wichtig,nur der Schönheit wegen und vielleicht für ein späteres Projekt.

Habs mal so versucht ging aber nicht

for /f "tokens=3" %%k in ('7za l -slt "D:\temp\lager\*.zip" ^| findstr /C:"Path = "') do if not exist "C:\programme\verarbeitet\%%k" goto schongelöscht

Danke dir

Gruß
Claus

PS: Wie lange befasst du dich schon so intensiv mit Batch Dateien ?
Bitte warten ..
Mitglied: Biber
29.11.2006 um 18:22 Uhr
Moin cbli,

ad 1.
Die kürzere Version -not recommended wäre schlicht und einfach der Verzicht auf jegliche Fallunterscheidung
01.
for /f "tokens=3*" %%k in ('7za l -slt "D:\temp\lager\*.zip" ^| findstr /C:"Path = "') do ( 
02.
if exist "C:\Programme\verarbeitet\%%k %l" del /q "C:\Programme\verarbeitet\%%k %l"
03.
)
Das würde zwar beim Auflösen der %%k und %%l-Variablen zu..
01.
...if exist "C:\Programme\verarbeitet\irgendeineDatei.xyz " del /y "C:\Programme\verarbeitet\irgendeineDatei.xyz "
02.
...if exist "C:\Programme\verarbeitet\irgendeine andere Datei.xyz" del /y "C:\Programme\verarbeitet\irgendeine andere Datei.xyz"
03.
...
..führen, also an EXIST und DEL jeweils bei Dateinamen ohne Leerzeichen im Namen
eine in Anführungszeichen eingeschlossene Zeichenkette mit einem SPACE am Ende übergeben.

Beide Befehle kommen damit klar...es wird alles gemacht wie erhofft.
Aber es ist halt kein gesichertes Feature des sympathischen Weltmarktführers, auf das ich vertrauen würde.
Eigentlich trau ich dem eh' nich' *murmel
Ob ein Befehl
01.
del "test.txt "
immer funktioniert...? Und ob in VBScript auch ein oFS.Delete("test.txt ") genauso klappt....?
Da riskier ich nichts und nehme lieber eine Zeile Batch mehr in Kauf.

ad 2.
Hm..keine Übereinstimmungen...okay. Aber daraus abzuleiten, dass die Datei schon gelöscht ist...mutig.

Ich würde in diesem ELSE-Fall nicht mit GOTO irgendwohin springen, sondern diesen Dateinamen in eine Logdatei schreiben.
Und diese Logdatei ggf. danach anzeigen, abarbeiten, whatever.
01.
...
02.
for /f "tokens=3*" %%k in ('7za l -slt "D:\temp\lager\*.zip" ^| findstr /C:"Path = "') do (
03.
 if exist "C:\Programme\verarbeitet\%%k %l" ( 
04.
       del /q "C:\Programme\verarbeitet\%%k %l"
05.
       ) ELSE (
06.
       Echo %date% "C:\Programme\verarbeitet\%%k %l" existiert nicht. Evtl. gelöscht?>>irgendein.log
07.
))
08.
...
ad P.S. Habe damit angefangen, nachdem ich mich im Forum registriert habe.

Grüße
Biber
Bitte warten ..
Mitglied: cbli
01.12.2006 um 13:01 Uhr
Dieser Thread kann geschlossen werden.

Danke nochmals für deine Hilfe.


Gruß
Claus
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Alte Daten automatisch per Zip erstellen
gelöst Frage von BEBBYsBatch & Shell4 Kommentare

Hallo Zusammen, da ich neu für unseres grosse Laufwerk zuständig bin, suche ich ein Tool/Weg wie ich alte Daten ...

PHP
ZIP-Datei auf Server speichern
gelöst Frage von YanmaiPHP23 Kommentare

Hallo ihr Administratoren, ich möchte eine ZIP-Datei auf einem Server speichern. Dabei habe ich schonmal diesen Code: Aber als ...

Batch & Shell

For Schleife für Abgleich mit Text-Datei und Unterverzeichnisse

gelöst Frage von grisurBatch & Shell4 Kommentare

Hallo zusammen, habe mich extra angemeldet, da ich bei einem kleinen Problem nicht so schnell weiterkomme. Bin Batch-Anfänger und ...

PHP

Automatisiertes entpacken einer Zip -Datei via PHP

gelöst Frage von Tamara87PHP3 Kommentare

Hallo zusammen, ich benutze seit geraumer Zeit folgendes Script zum Entpacken von ZIP Dateien, vielleicht kennt es der ein ...

Neue Wissensbeiträge
Windows Server
Anzahl von Gruppenrichtlinien
Erfahrungsbericht von Bullii vor 4 StundenWindows Server

Hallo, mich interessiert brennend, wieviele Gruppenrichtlinienobjekte, ihr so bei euch habt? Ich versuchte eigentlich immer die Gruppenrichtlinienobjekte soweit wie ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 8 StundeniOS

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 20 StundeniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 3 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Heiß diskutierte Inhalte
Exchange Server
Exchange Server 2010: Keine Eingehenden E-MAils
gelöst Frage von gabeBUExchange Server17 Kommentare

Hallo Zusammen Ich habe das kurzen auf dem Exchange 2010 Server das Problem, dass ich keine externen E-Mails mehr ...

Server
Server in zwei verschiedene Netzwerke einbinden
gelöst Frage von BennyFServer13 Kommentare

Hallo zusammen, bei uns im Haus sind im Erdgeschoss die Geschäftsräume und ab dem 1. Stock sind unsere privaten ...

Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
Frage von frosch2Windows Netzwerk11 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

Netzwerkmanagement
Ticketsystem für eine Kommune gesucht
gelöst Frage von akovisNetzwerkmanagement11 Kommentare

Ich suche aktuell ein Ticketsystem für eine Kleinstadt von 13000 Einwaohnern. Das System soll alle Anfragen aus verschiedenen Kanälen ...