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

Suchschleife Batch

Frage Entwicklung Batch & Shell

Mitglied: Nathalem

Nathalem (Level 1) - Jetzt verbinden

11.04.2013 um 20:48 Uhr, 1389 Aufrufe, 6 Kommentare, 2 Danke

Ich versuche eine Batchdatei du schreiben die einen Ordner durchsucht

Hallo zusammen,

durch unverständige Fehlerhafte Exporte ist folgendes Problem aufgetreten.
Es gibt knapp 100 Ordner mit einer Hand voll bis mehrere 1000 HTML Dateien darin die aufsteigend durchnummeriert sind jedoch gibt es bei einigen der größeren das Problem das aufgetreten das einige Dateien Fehlen.
Im Ordner sieht das dann circa so aus

1
2
3
4
5
.....
231
232
233
234
271
272
....
719
720
721
739
740
741
742
..

Wie ersichtlich ist fehlen 2 Bereiche.
Ich würde nun gerne eine Batchdatei schreiben die im inneren des Ordners gestartet wird und guckt
gibt es "1.html"
wenn nein -> 1.html fehlt
wenn ja -> gibt es 2.html
wenn nein -> 2.html fehlt
usw.

Wenn eine Datei fehlt soll die Schleife abgebrochen werden und eine MassageBox oder ähnliches auftauchen in der man darüber informiert wird damit man die restlichen Dateien neu exportieren kann.

Wäre super wenn ihr mir helfen könntet.
Mitglied: rubberman
11.04.2013, aktualisiert um 21:33 Uhr
Hallo Nathalem, willkommen im Forum.

Versuche mal diesen Code:
01.
@echo off &setlocal EnableDelayedExpansion 
02.
set /a count=0, max=0 
03.
for /f "delims=" %%i in ('dir /a-d /b *.html^|findstr /rixc:"[1-9][0-9]*\.html"') do ( 
04.
  set /a count+=1 
05.
  if %%~ni gtr !max! set /a max=%%~ni 
06.
07.
echo Anzahl HTML Dateien: %count% 
08.
echo Groesster Dateiname: %max%.html 
09.
echo( 
10.
if %count%==%max% (echo *** OK ***) else echo *** Dateien fehlen^^! *** 
11.
echo( 
12.
pause
Eine Unsicherheit besteht aber bereits im Ansatz. Wenn nur die letzten Dateien fehlen sollten (also nicht exportiert wurden), wirst du das so nie feststellen können.

Grüße
rubberman
Bitte warten ..
Mitglied: Endoro
11.04.2013, aktualisiert um 21:42 Uhr
Hallo Nathalem,

zeigt dir fehlende Dateien im aktuellen Ordner an:

01.
@echo off&setlocal enabledelayedexpansion 
02.
for %%i in (*.html) do if %%~ni gtr !cnt! set "cnt=%%~ni" 
03.
for /l %%i in (0,1,%cnt%) do if not exist "%%i.html" echo missing: %%~fi.html 
04.
pause
Du musst dafür sorgen, dass die "letzte" mit dem grössten Wert vorhanden ist.

Gruss!
Bitte warten ..
Mitglied: Nathalem
11.04.2013 um 21:47 Uhr
Funktioniert schon mal ganz gut.
Vielen dank für den Tipp aber das unwahrscheinlich da das Programm aus irgeneinem Grund von hinten und von vorne exportiert.
Ich habe eben mal den Fehler provoziert indem ich Dateien weg genommen habe.
Das Programm sagt zwar das Dateien Fehlen jedoch nicht welche.
Kannst du etwas machen damit das Programm wenn etwas fehlt sofort Stoppt und sagt welches fehlt?
Bitte warten ..
Mitglied: Nathalem
11.04.2013 um 21:49 Uhr
warte ich teste erstmal die Antwort von Endoro
Bitte warten ..
Mitglied: Nathalem
11.04.2013 um 21:56 Uhr
hat geklappt ihr seid super
Bitte warten ..
Mitglied: rubberman
11.04.2013, aktualisiert um 22:43 Uhr
Hallo Nathalem,

eine Bemerkung noch. Beide Lösungen stoppen nicht bei der ersten fehlenden Datei. Der Grund dafür ist, dass zunächst die Datei mit der größten Zahl als Dateiname gefunden werden muss. Während im Explorerfenster die Dateien numerisch geordnet erscheinen, wird in der Batchdatei (auf einem NTFS) die Sortierung alphanumerisch durchgeführt. Bei 1000 Dateien also bspw. so:
1.html 
10.html 
100.html 
1000.html 
101.html 
102.html 
103.html 
104.html 
105.html 
106.html 
107.html 
108.html 
109.html 
11.html 
...
Man muss (wie Endoro gezeigt hat) anschließend numerisch aufsteigend jede einzelne Datei vergleichen um die fehlenden Dateien entsprechend geordnet anzuzeigen.

Grüße
rubberman
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (9)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...