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

Batch: for + dir + findstr

Frage Entwicklung Batch & Shell

Mitglied: .Sessl

.Sessl (Level 1) - Jetzt verbinden

30.10.2014, aktualisiert 22:47 Uhr, 1263 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
In Batch FINDSTR in Variable und auch noch kuerzen
gelöst Frage von deathwormBatch & Shell2 Kommentare

Hallo! Ich habe folgendes Problem. Beim verschluesseln von Festplatten wird ein Key generiert und dieser in eine TXT Datei ...

Batch & Shell
Batch: findstr mit Option "weder noch"
Frage von ole-objektBatch & Shell4 Kommentare

Hallo, ich habe eine batch, mit der ich alle Zeilen, die einem bestimmten Filterkriterium aus einer (bzw. mehreren) Datei(en) ...

Batch & Shell
Batch mit Ausnahme bei FINDSTR
Frage von skywalker28Batch & Shell6 Kommentare

Hallo zusammen, ich bin beim Erstellen meiner Batch-Datei als Anfänger mit Hilfe dieses Forums schon recht nah am Ziel, ...

Windows Installation
Zu Win 10 PE Batch Befehle hinzufügen: findstr und wmic logicaldisk
Frage von anmelderWindows Installation2 Kommentare

Hallo, nach dieser Anleitung habe ich eine Windows 10 PE Boot DVD erstellt: Anleitung Win PE Es gab bei ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows 10
Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App
Tipp von kgbornWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...