Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Per batch auf eine Datei prüfen

staubwolke / 5 Antworten / Baumansicht Nickles

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

bei Antwort benachrichtigen
gurissimo staubwolke „Per batch auf eine Datei prüfen“
Optionen

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

bei Antwort benachrichtigen
gurissimo Nachtrag zu: „Wer arbeitet denn da noch im DOS ? Vielleicht hilft Dir das weiter: DIR .BAT...“
Optionen

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

bei Antwort benachrichtigen
peterson staubwolke „Per batch auf eine Datei prüfen“
Optionen

@echo off

if not exist xxxxxxx.xxx goto ende

echo Datei vorhanden

:ende

pause

bei Antwort benachrichtigen
staubwolke Nachtrag zu: „Per batch auf eine Datei prüfen“
Optionen

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 Antwort benachrichtigen
gurissimo staubwolke „Moin Leutz, Danke für eure Denkanstöße die Anwendung vom IF EXIST file...“
Optionen

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

bei Antwort benachrichtigen