Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Batch: for + dir + findstr

Frage Entwicklung Batch & Shell

Mitglied: .Sessl

.Sessl (Level 1) - Jetzt verbinden

30.10.2014, aktualisiert 22:47 Uhr, 1184 Aufrufe, 2 Kommentare

Hallo zusammen,

ich hab mal wieder ein 'ernstes' Problem, bei dem ich nicht wirklich weiter weiß und das Internet nicht so recht eine Lösung parat hat.
Folgendes habe ich vor:
- in einem Verzeichnis liegen Dateien (z.B. 20141029.100000.000; 20141029.110000.000; usw.)
- welche ich mittels DIR-Befehl pro Schleife einlesen will
- in der Exclude-Datei stehen bereits einige dieser Dateien (pro Zeile ein Eintrag)
- nun sollen mir aber nur jene als Variable zur Verfügung stehen, die eben nicht in der Exclude-Datei stehen, deshalb sage ich findstr ignoriere diese

Im weiteren Schritten werden jene aussortiert, die nicht älter als 8h alt sind. Im Script wird am Ende der FOR-Schleife die jeweilige Datei in die Exclude-Datei mittels ECHO geschrieben, damit im nächsten Lauf nur noch die nicht bereits verarbeiteten verarbeitet werden.

Ich hoffe ich konnte es einigermaßen vernünftig erklären.

Codeschnipsel:
01.
@echo off 
02.
SETLOCAL ENABLEDELAYEDEXPANSION 
03.
 
04.
set "file_path=\\server\log" 
05.
set "exclude=c:\temp.txt 
06.
 
07.
for /f %%a in ('dir /b /a-d "%file_path%" ^| findstr /v /g:%exclude%') do ( 
08.
  echo %%a 
09.
)
Dateien im Ordner:
01.
20141025.060000.000 
02.
20141026.210000.000 
03.
20141027.150000.000 
04.
20141028.030000.000 
05.
20141029.100000.000 
06.
20141029.170000.000
Exclude-Datei "temp.txt": (die "20141029.100000.000" steht öfter drin, da ja die verarbeiteten in diese Datei geschrieben werden, da aber findstr diese nicht ignoriert, wird diese
01.
20141025.060000.000 
02.
20141026.210000.000 
03.
20141027.150000.000 
04.
20141028.030000.000 
05.
20141029.100000.000   
06.
20141029.100000.000   
07.
20141029.100000.000   
08.
20141029.100000.000  
Zum Problem:
Leider funktioniert diese Schleife nur "zur Hälfte". Lass ich diese durchlaufen, müsste er mir nur die "20141029.170000.000" Datei anzeigen, da diese nicht in der temp.txt drin steht. Es wird jedoch folgendes ausgegeben:
01.
20141029.100000.000 
02.
20141029.170000.000
Würde mir bitte jemand verraten wo mein Denkfehler ist und ob diese Schleife generell funktionieren würde? Ich verzweifel schon

Euch vorab schon mal vielen Dank für jede Idee!


Gruß
Tobias
Mitglied: rubberman
LÖSUNG 30.10.2014, aktualisiert um 22:47 Uhr
Hallo Tobias.

Nur die Zeilen mit 20141029.100000.000 in deiner Exclude-Datei haben einige angehängte Leerzeichen, die offensichtlich mit verglichen werden. Ergo hast du einen Fehler bei der Erzeugung dieser Datei.

In Zeile 5 fehlt übrigens das schließende Anführungszeichen, was aber wohl nichts mit deinem Problem zu tun hat.

Grüße
rubberman
Bitte warten ..
Mitglied: .Sessl
30.10.2014 um 22:47 Uhr
Oh nein .. was ein Leerzeichen alles anrichten kann!
Dein Adlerauge hat mich gerettet, vielen Dank!

Das fehlende Anführungszeichnen in Zeile 5 fehlt glücklicherweise nur hier ..

Vielen Dank für die schnelle und sehr hilfreiche Antwort.


Gruß
Tobias
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch mit forfiles - Dateiendung filtern - Dateien löschen

Frage von mschaedler1982 zum Thema Batch & Shell ...

Batch & Shell
Doppelte Dateneinträge per Batch aus Datei löschen? HILFE (3)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Ordner per Batch in RAR (1)

Frage von kampen zum Thema Batch & Shell ...

Batch & Shell
gelöst Einen Teil eines Textpfades aus einer TXT per Batch entfernen!? (3)

Frage von kampen zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (7)

Frage von zelamedia zum Thema Internet Domänen ...

Video & Streaming
Kamera mit 24-7 auf Website hat Aussetzer (6)

Frage von Calvus zum Thema Video & Streaming ...