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 Nummerierte Dateien auf Lückenlosigkeit überprüfen. Fehler in Datei ausgeben!

Mitglied: Andichrist

Andichrist (Level 1) - Jetzt verbinden

25.10.2009 um 16:17 Uhr, 7530 Aufrufe, 10 Kommentare

Hallo,

ich habe sehr viele Dateien in einem Ordner auf Vollständigkeit zu überprüfen. Eventuell auftreten Lücken (fehlende Datein) mußten bisher mit erhöhtem Zeitaufwand aufgespürt werden.

Um mir die Arbeit zukünftig zu erleichtern, wäre es hilfreich eine Batch zu haben, die den Ordner durcharbeitet und jede "Lücke" (fehlende Nummer) in eine Datei zB. Fehler.log ausgibt!


Beispiel:

c:\Temp

3401.txt <- START (hier im Beispiel)
3402.txt
3403.txt
3404.txt
3406.txt
3407.txt
....
3634.txt
3635.txt
3640.txt
3641.txt
...
3997.txt
3998.txt
3999.txt
4000.txt <- ENDE (hier im Beispiel)

Hier sollte in der Fehler.log folgende Dateien als fehlende Dateien aufgelistet werden:

3405.txt
3636.txt
3637.txt
3638.txt
3639.txt


Anmerkung: START (hier 3401) und ENDE (4000) sind eindeutig und können für eine Schleife (von 3401 bis 4000) benutzt werden! START und ENDE variieren!

Zwei Szenarios sind möglich!

1) nur durchnummerierte Dateien -> 1234.txt
2) Nummer+Dateinamen 1234 Objekt Kala.txt

Es wäre schön, wenn jemand eine Lösung parat hätte!

Vielen Dank im Voraus
AndyChrist
Mitglied: bastla
25.10.2009 um 16:53 Uhr
Hallo Andy!

Falls ich das richtig verstehe (es ist nur der Anfang des Dateinamens zu prüfen, da im Anschluss an die laufende Nummer zusätzlicher Text folgen kann), könnte das etwa so aussehen (ist allerdings ungetestet):
01.
@echo off & setlocal 
02.
set "Ordner=C:\Temp" 
03.
set "Typ=txt" 
04.
set /a Von=3401 
05.
set /a Bis=4000 
06.
set "Log=D:\Fehler.log" 
07.
 
08.
set "DirList=%temp%\DirList.txt" 
09.
>"%DirList%" dir /b "%Ordner%\*.%Typ%" 
10.
if exist "%Log%" del "%Log%" 
11.
for /L %%i in (%Von%,1,%Bis%) do findstr /b "%%i" "%DirList%"||>>"%Log%" echo %%i.txt 
12.
del "%DirList%"
Grüße
bastla
Bitte warten ..
Mitglied: Andichrist
25.10.2009 um 18:40 Uhr
Hallo bastla,

prima die Batch ' Suche.bat' macht genau das, was sie machen soll! *TOP*

Jetzt hätte ich nur noch einen Vereinfachungswunsch beim Batchaufruf! ^^

Könnte man die Batch noch soweit anpassen, dass noch der Suchbereich als Parameter (VON -> BIS) beim Aufruf direkt mitgegeben werden könnte.

Also: suche 3401 4000

So müßte man die Batch nicht permanent wegen des Suchbereiches anpassen!

Gruß
Andy
Bitte warten ..
Mitglied: bastla
25.10.2009 um 18:53 Uhr
Hallo Andy!

Dazu brauchst Du ja nur die Zeilen 4 und 5 leicht zu ändern:
set /a Von=%1 
set /a Bis=%2
Zur Sicherheit kann natürlich vorweg noch geprüft werden, ob zumindest 2 Parameter angegeben wurden:
if [%2]==[] echo Verwendung: %~nx0 Von Bis & echo\ & pause & goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Andichrist
25.10.2009 um 23:47 Uhr
Hallo bastla,

ich danke Dir für Deine Lösung! Funktioniert 100%!

Ich mußte aber feststellen, das ein Batch-Aufruf per KLICK komfortabler ist!

Daher habe ich die VON/ BIS Abfrage in die Batch eingebaut!

Für die Leute die diese Lösung bevorzugen, einfach Zeile 4 und 5 (siehe Script von bastla) ersetzen!

echo Bitte START-Wert (VON) angeben: 
set /p Von=%1  
 
echo Bitte END-Wert (BIS) angeben: 
set /p Bis=%2

Viele Grüße
Andy
Bitte warten ..
Mitglied: bastla
25.10.2009 um 23:55 Uhr
Hallo Andy!

Eigentlich genügte auch:
set /p Von=Bitte START-Wert (VON) angeben:  
set /p Bis=Bitte END-Wert (BIS) angeben: 
Grüße
bastla
Bitte warten ..
Mitglied: Andichrist
26.10.2009 um 00:03 Uhr
'Alla gut' - überzeugt! *grins*

Du bist der Experte!

Sieht besser aus als mein gebasteltes.

Gruß
Andy
Bitte warten ..
Mitglied: Spencer099
01.12.2010 um 00:12 Uhr
Hallo Bastla,

ich habe ein ähnliches Problem!
Vielleicht kannst du mir auch dabei helfen.
Ich muss in einem Verzeichniss überprüfen ob die Dateien fortlaufen sind oder doppelt sind!
Dateinamen sind wie folgt aufgebaut:
XXX00001_Beschreibung.pdf
XXX =Fixer Bestandteil 3 Stellig z.B. SCN
00001=fortlaufende Numerierung 5 Stellig
_=Trennzeichen
Beschreibung=Varibler Zusatztext z.B Privat oder Bild etc.

Im Verzeichniss liegen z.B. die folgenden Dateien:
SCN00001_Privat.pdf
SCN00002_Bild.pdf
SCN00003_Privat-Informationen.pdf
.
.
.SCN00622_Privat-.pdf

Es soll also nur geprüft werden ob die ersten 8 Zeichen im Dateinamen doppelt sind und fortlaufend.
Eine Ausgabe der Fehlerdatei über eine Log Datei reicht mir komplett aus.
Hast du dafür eine Idee

Vielen Dank Martin
Bitte warten ..
Mitglied: bastla
01.12.2010 um 19:51 Uhr
Hallo Spencer099!

Könnte etwa so gehen:
01.
@echo off & setlocal 
02.
set "Ordner=D:\Viele Dateien" 
03.
set "Maske=*_*.pdf" 
04.
set "Fix=SCN" 
05.
set "Log=D:\Fehler.log" 
06.
 
07.
set "DirList=%temp%\DirList.txt" 
08.
type nul>"%DirList%" 
09.
del "%Log%" 2>nul 
10.
set /a Nr=100000 
11.
set "Fehlende=" 
12.
for %%i in ("%Ordner%\%Maske%") do call :ProcessFile "%%~nxi" 
13.
if defined Fehlende ( 
14.
    echo\ 
15.
    echo Nummern nicht fortlaufend - erste Fehlende: %Fehlende% 
16.
)>>"%Log%" 
17.
del "%DirList%" 2>nul 
18.
goto :eof 
19.
 
20.
:ProcessFile 
21.
for /f "delims=_" %%a in (%1) do set "Kennz=%%a" 
22.
set /a Nr+=1 
23.
if "%Kennz%" neq "%Fix%%Nr:~-5%" if not defined Fehlende set "Fehlende=%Fix%%Nr:~-5%" 
24.
findstr "%Kennz%" "%DirList%">nul && >>"%Log%" echo Doppelt: %~1 || >>"%DirList%" echo %Kennz% 
25.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Spencer099
01.12.2010 um 21:05 Uhr
Hallo Bastla,

erste einmal vielen Dank für die schnelle Antwort.
Leider geht es nicht er schreibt mit in der Fehler.log folgendes hinein:


Nummern nicht fortlaufend - erste Fehlende: SCN00001

Hast du da noch eine Idee?

Grüße Spencer099
Bitte warten ..
Mitglied: bastla
01.12.2010 um 21:17 Uhr
Hallo Spencer099!

Wenn die Daten in den Zeilen 2 bis 4 an Deine Gegebenheiten angepasst sind, kann ich mir das Ergebnis nicht erklären - um aber zumindest die Eventualität Groß-/Kleinschreibung hinsichtlich des "fixen" Teil "SCN" zu berücksichtigen, verwende bitte folgende Zeile 23:
if /i "%Kennz%" neq "%Fix%%Nr:~-5%" if not defined Fehlende set "Fehlende=%Fix%%Nr:~-5%"
[Edit]
bzw verwende besser diese Version:
if "%Kennz:~3,5%" neq "%Nr:~-5%" if not defined Fehlende set "Fehlende=%Nr:~-5%"
- damit wird tatsächlich nur noch die Nummer geprüft.

Um dies auch für die Dubletten so umzusetzen, könntest Du gleich den gesamten letzten Teil austauschen:
01.
:ProcessFile 
02.
for /f "delims=_" %%a in (%1) do set "Kennz=%%a" 
03.
set "Kennz=%Kennz:~3,5%" 
04.
set /a Nr+=1 
05.
if "%Kennz%" neq "%Nr:~-5%" if not defined Fehlende set "Fehlende=%Nr:~-5%" 
06.
findstr "%Kennz%" "%DirList%">nul && >>"%Log%" echo Doppelt: %~1 || >>"%DirList%" echo %Kennz% 
07.
goto :eof
[/Edit]

Um den Ablauf besser nachvollziehen zu können, wäre es auch sinnvoll, aus dem "echo off" in Zeile 1 (vorübergehend) ein "echo on" zu machen und den Batch aus der CMD-Shell zu starten bzw zumindest unmittelbar vor Zeile 18 eine Zeile
pause
einzufügen.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Nummerierte dateien lücke finden .batch

Frage von franky89Batch & Shell2 Kommentare

hallo zusammen :) ich habe eine Vielzahl an Dateien mit Messwerten die folgender maßen aussehen: xxxx0001_000.txt xxxx0002_000.txt xxxx0003_000.txt xxxx0004_000.txt ...

Batch & Shell

Batchdatei soll überprüfen, ob auf eine Log Datei

Frage von hoppalaBatch & Shell1 Kommentar

Hiho :) ! Ein Freund und ich haben eine Batchdatei erstellt, leider kommen wir bei einer Sache nicht weiter. ...

Windows 10

PowerShell mit LastWriteTime Dateien überprüfen

gelöst Frage von mr.kkevWindows 101 Kommentar

Hallo liebe Experten Momentan bin ich ein Skript am Schreiben, welches Erstellte PDFs auf ihr Datum überprüft. Leider habe ...

Batch & Shell

Batch: Ordner auf Datei überprüfen

gelöst Frage von donmanolitoBatch & Shell4 Kommentare

Hallo Ich suche eine Möglichkeit alle Ordnernamen eines Verzeichnisses in eine Variable zu schieben um dann per Schleife ein ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...