eddy19
Goto Top

Über Batch die Dateiendung abfragen und danach zur Weiterverarbeitung auf eien Sprungmarke gehen

Hallo Leute,
ich bin Neu in diesem Forum und hoffe das ich einen Beitrag dazu leisten kann andere KollegenInnen zu unterstützen respektive um Unterstützung zu erhalten.

Vielen Dank

Eddy

Hallo Leute,

ich habe folgende Herausforderung. Ich möchte über einen Batchjob in einem Verzeichnis nach einer Datei an Hand einer Dateiendung suchen und wenn diese Datei vorhanden ist, soll über eine Sprungmarke auf einen anderen Befehl gesprungen werden. In meinem Fall zu dem Befehle "Call ....." Nach dem das Programm seine Arbeit abgeschlossen hat ( einlesen von Daten) soll wieder mit der nächsten Befehl abgearbeitet werden.
Dieser Batchjob soll jeden Tag ausgeführt werden. Das habe ich schon realisiert. Aber es stehen nicht jeden Tag Dateien zur Verfügung mit der Endung (.ncd) Sind keine Dateien vorhanden soll der Aufruf von "Call..." nicht ausgeführt werden.

Und genau hier habe ich meine Probleme. Einmal die Abfrage und anschließend, wenn keine Datei vorhanden ist.
Hier mein Script:
Set TRANSFERVERZEICHNIS=C:\1RZ\Import
Set MANDANT=0999
Set Endung=ncd



REM Nachstehend PPAYNUMMER=PPAY-Kundennummer

Set NUMMER=0999
Set VERZEICHNIS=C:\1RZ\Test



IF EXIST %TRANSFERVERZEICHNIS%\%DATE%-%MANDANT%.log DEL /F %TRANSFERVERZEICHNIS%\%DATE%-%MANDANT%.log

For %%n in (*.ncd) do Goto PO GOTO Weiter <=== Hier habe ich meine Probleme, ich weiß nicht wie ich meine o.g Vorgaben umsetzen kann

REM echo *** Am %DATUM%  %ZEIT wurden keine Daten eingelesen*** >>%TRANSFERVERZEICHNIS%\%MANDANT%\log\%DATE%-%MANDANT%.log


REM Aufruf vom wenn Daten
REM im Verzeichnis C:\1RZ\Import vorhanden sind
REM call %VERZEICHNIS%\po_import.bat 


REM ##################################################
REM Löschen der verarbeiteten *.NCD Dateien
REM muss ich noch realisieren bzw. die Datei nur umbenennen nach Verarbeitung



:Weiter
findstr /c:"Es wurden keine Dateien eingelesen" %TRANSFERVERZEICHNIS%\log\ImportError.log  


echo
echo *** Am %DATUM% um %ZEIT% sind keine Dateien zur Verarbeitung vorhanden *** >>%TRANSFERVERZEICHNIS%\log\%DATE%-%MANDANT%.log
echo

Exit

Vielen Dank im Voraus.

Eddy

[Edit Biber] Codeformatierung. [/Edit]

Content-Key: 205131

Url: https://administrator.de/contentid/205131

Printed on: April 24, 2024 at 22:04 o'clock

Member: bastla
bastla Apr 17, 2013 at 10:24:36 (UTC)
Goto Top
Hallo Eddy19 und willkommen im Forum!

Versuch es so:
dir *.%Endung% >nul 2>nul && (
    echo Mindestens eine Datei gefunden
) || (
    echo Keine Datei gefunden
)
Anstelle der "echo"-Ausgaben kannst Du natürlich auch Sprungbefehle oder ganze Codeblöcke verwenden ...
Wenn sichergestellt ist, dass es maximal eine passende Datei geben kann, funktioniert natürlich auch die "for"-Variante - es wird ja für jede gefundene Datei der "do"-Teil ausgeführt:
For %%n in (*.ncd) do Goto :Gefunden
echo Keine Datei gefunden
goto :eof

:Gefunden
echo Datei gefunden
Grüße
bastla
Member: Eddy19
Eddy19 Apr 17, 2013 at 12:01:07 (UTC)
Goto Top
Vielen Dank. Ich werde es morgen ausprobieren.

Grüße
Eddy
Member: Eddy19
Eddy19 Apr 19, 2013 at 05:35:44 (UTC)
Goto Top
Hallo Bastla

vielen Dank hat geklappt. Ich habe das Script noch etwas modifiziert so das Logfiles geschrieben werden, wenn keine Datei vorhanden ist.

Schönen daür.

Eddy