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, 1415 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch und Powershell (2)

Frage von michi-ffm zum Thema Batch & Shell ...

Batch & Shell
Batch Systemlaufzeitabfrage (3)

Frage von phil9678 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch minimiert starten (3)

Frage von pdiddo zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
iOS
IPhone wird ferngesteuert Hacker? (21)

Frage von Akcent zum Thema iOS ...

Vmware
VMware ESX - Start einer VM verhindern (19)

Frage von emeriks zum Thema Vmware ...

Rechtliche Fragen
gelöst Geschäftsführer Email gefaked (18)

Frage von xbast1x zum Thema Rechtliche Fragen ...