Moin Leutz
wie kann man am einfachsten im Ablauf einer Batchdatei ein Verzeichnis überprüfen, ob eine Datei eines bestimmten Typ enthalten ist.
Es geht um die Anzahl der Dateien, die Batch soll bei exakt einer Datei des Typs anders verzweigen wie bei mehreren oder keiner.
Kann mir da jemand mit einer Idee oder auch gern mit einem konkreten Vorschlag ;) weiterhelfen?
schonmal Danke für's lesen
Staubwolke
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Wer arbeitet denn da noch im DOS ?
Vielleicht hilft Dir das weiter:
DIR *.BAT > ALLEBAT
FIND /C /I "BAT" ALLEBAT > FOUNDBAT
TYPE FOUNDBAT
Da hast zumindest mal ein eindeutiges Ergebnis!
Eventuell anschließend mit DOS-BEFEHL "IF ......" weiterprobieren.
Einfacher ist es allemal, ein kleines BASIC-Programm (oder anderes) zu schreiben, das das Ergebnis von FOUNDBAT einliest und entsprechende Meldungen ausgibt und bei Bedarf/Eindeutigkeit auch gleich das Programm/den BATCH-File startet.
NUR mit einer BATCH-Datei ALLEIN wird das vermutlich nicht ganz funken.
Hoffe, daß Dir das eine Hilfe war oder zumindest auf die Sprünge hilft.
Liebe Grüße
Unter der Dusche ist mir eingefallen, daß es da noch eine Methode gibt, die auch peterson Dir empfiehlt:
darum hier ein Komplett-Beispiel:
Name der BATCH-Datei: z.B.: GUCKMAL.BAT
(kann mit jedem Editor erstellt werden!)
@echo off
if exist ORIONCD.INI goto :gibts
:nix
echo ORIONCD.INI nicht gefunden
pause
goto :finish
:gibts
echo ORIONCD.INI vorhanden
echo.
echo hier Deinen Erfordernissen anpassen
echo z.B.:
type ORIONCD.INI
echo.
goto :finish
:finish
echo das wars auch schon
echo.
echo mit liebem Gruss gurissimo
echo.
echo Ende der GUCKMAL.BAT Datei
das ORIONCD.INI kannst ja auswecchseln!!
ausführen mit
GUCKMAL
@echo off
if not exist xxxxxxx.xxx goto ende
echo Datei vorhanden
:ende
pause
Moin Leutz,
Danke für eure Denkanstöße
die Anwendung vom "IF EXIST file" funktioniert leider nicht, weil ja nur das vorhandensein einer beliebigen Anzahl des spezifiziertem "file" geprüft wird
der Ansatz mit FIND ist schon eine Möglichkeit auf EINE Datei zu prüfen aber leider nur mit hilfe einer zu erzeugengden Datei was ich vermeiden wollte
aber nicht geschrieben hatte, tschuldigung ...
habe jetzt aber nach etlicher Tüfftelei eine Weg gefunden mit zwei weiteren "ausgelagerten" Befehlen
hier mein Ansatz dazu
-----------------------------------------
set cfx=
For /L %%i in (1,1,9) DO (
if exist 0%%i* (
set disc=0%%i
call :namex
call :extenx
call :countfilex
call :showcounter
call :dirx
set cfx=
)
)
:namex
...
:extenx
...
:dirx
...
:countfilex
FOR /F "tokens=*" %%b in ('dir /b /on "%diskn%\*.%exten%"') do set/a cfx=cfx+1
GOTO :ende
:showcounter
IF %cfx% EQU 1 ECHO Hallo %cfx% EQU 1 is true
IF %cfx% NEQ 1 ECHO Hallo %cfx% EQU 1 is not true
GOTO :ende
:ende
-------------------
tja und wie immer, wenn man erst einmal weiß "wie's geht" ist's plötzlich ganz einfach ;) hat aber schon ne Weile gedauert lol
also nochmal Danke
bei dieser Lösung verblassen natürlich unsere Ansätze !
Kann ja niemand voraussehen, daß es noch Leute gibt, die das wirklich noch können!
Herzliche Gratulation!
LG
gurissimo