Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   *.bat Datei wird nicht richtig ausgeführt (https://www.delphipraxis.net/147570-%2A-bat-datei-wird-nicht-richtig-ausgefuehrt.html)

Ykcim 11. Feb 2010 16:13


*.bat Datei wird nicht richtig ausgeführt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,

ich habe ein Programm, welches eine *.bat Datei ausführen soll. Für den Aufruf verwende ich folgenden Befehl:
Delphi-Quellcode:
ShellExecute(self.handle, 'OPEN','F:\Datenupdate\DatenbankUpdate 11.02.2010\RUNQRY_AEPH\AEPH_001\Test.bat', '', '', SW_Show);
Die Datei wird auch daraufhin kurz aufgerufen, aber sofort wieder geschlossen. Das wäre kein Problem, aber dummerweise macht sie auch nicht das, was sie soll - nämlich 2 Dateien von einem FTP-Server ziehen...

Wenn ich die Datei via Doppelklick öffne, funktioniert sie wunderbar.

Folgender Inhalt steht in der BAT-Datei

Zitat:

@echo off
echo "CSV-Datei abholen AEPH_001 Liefersituation 4 Wochen"
echo
rtopcb AEPH_001_CSV.dtf
echo
echo "Ende der Übertragung"
Kennt jemand ein solches Problem und gibt es dafür vielleicht auch eine Lösung?

Vielen Dank im Voraus

P.S. Ich habe mit einem irre schnelle Finger ein Screenshot gemacht, während es für einen Bruchteil zu sehen ist.

Ykcim

khh 11. Feb 2010 16:31

Re: *.bat Datei wird nicht richtig ausgeführt
 
hast es mal mit absoluten Pfaden im Batchfile versucht?

turboPASCAL 11. Feb 2010 16:33

Re: *.bat Datei wird nicht richtig ausgeführt
 
schon versucht ?

Delphi-Quellcode:
ShellExecute(self.handle, 'OPEN','Test.bat', nil, 'F:\Datenupdate\DatenbankUpdate 11.02.2010\RUNQRY_AEPH\AEPH_001\', SW_Show);
Hier im Forum suchenShellExecute ?!

hathor 11. Feb 2010 16:33

Re: *.bat Datei wird nicht richtig ausgeführt
 
Teste mal das:
Delphi-Quellcode:
    {Execute batch file}
    StrPCopy(Templine, 'temp.bat');
    TaskHandle := ShellExecute(frmMain.Handle, NIL, 'command.com',
                  templine,
                  Tempdir,
                  SW_MINIMIZE);

//and monitor it with a function like this:

    function CheckTask(hInstance: WORD): Boolean;
    var
        TaskInfo: TTASKENTRY;
        RetVal: Boolean;
    begin
        TaskInfo.dwSize := SizeOf(TTASKENTRY);
        RetVal := FALSE;
        if(TaskFirst(@TaskInfo)) then
        begin
            repeat
                if(TaskInfo.hInst = hInstance) then
                begin
                    RetVal := TRUE;
                    Break;
                end;
            until (TaskNext(@TaskInfo) = FALSE);
        end;
        CheckTask := RetVal;
    end;

(*This runs down the task list, trying to find the task with the specified
Hinstance, returning true if it is still there. To use this function,
simply call it in a loop like this*)

    while CheckTask(TaskHandle) do
    begin
        Application.ProcessMessages;
    end;

himitsu 11. Feb 2010 16:34

Re: *.bat Datei wird nicht richtig ausgeführt
 
cmd
echo /?

ECHO ohne was, gibt den Status von ECHO aus.

Code:
echo.
Der Punkt direkt in Anschluß besagt, daß du nur eine Leerzeile willst.


PS: Schneller Finger ... ein "PAUSE"-Befehl am Ende der Batch, gibt ein bissl mehr Zeit :zwinker:

PSS: warum rufst du rtopcb nicht direkt auf?

Ykcim 11. Feb 2010 16:52

Re: *.bat Datei wird nicht richtig ausgeführt
 
Hallo zusammen,

vielen Dank für die schnellen Antworten!

mit turboPASCAL Lösung bin ich weiter gekommen.

Zitat:

ShellExecute(self.handle, 'OPEN','Test.bat', nil, 'F:\Datenupdate\DatenbankUpdate 11.02.2010\RUNQRY_AEPH\AEPH_001\', SW_Show);
Vielen Dank für die Hilfe!!!

Gruß

Ykcim

Ykcim 11. Feb 2010 16:53

Re: *.bat Datei wird nicht richtig ausgeführt
 
Ich habe die Batch-Datei von einem MA aus der EDV erstellen lassen. Ich habe das noch nie gemacht und habe keine Ahnung davon. Gibt es irgendwo eine Übersicht, wie die Datei aufgebaut sein muss, welche Regeln zu beachten sind und welche Möglichkeiten man hat?

Danke

Ykcim

p80286 11. Feb 2010 16:57

Re: *.bat Datei wird nicht richtig ausgeführt
 
Such mal in der MS-Hilfe nach "Batch" bzw. "Batchdateien".

Gruß
K-H

shmia 11. Feb 2010 17:07

Re: *.bat Datei wird nicht richtig ausgeführt
 
Die korrekte Schreibweise des "Verbs" zum Öffnen lautet übrigens 'open' und nicht 'OPEN'.
Neben 'open gibt es für *.bat und *.cmd - Dateien auch noch die Verben 'edit' und 'print'.

Ich glaube ich muss auch mal wieder auf den Unterschied zwischen *.bat und *.cmd Dateien hinweisen.
Code:
*.bat -> wird von COMMAND.COM ausgeführt (veraltet)
*.cmd -> wird von cmd.exe ausgeführt (sollte unter Windows bevorzugt werden)

himitsu 11. Feb 2010 17:13

Re: *.bat Datei wird nicht richtig ausgeführt
 
Startmenü > Programme > Zubehöhr > Eingabeaufforderung
oder
Ausführen "cmd"

dort "help" eingeben
und "befehl /?" gibt weiterführende Hilfe

Es gibt zwar auch hier und da Webseiten, aber so hat man alles aus erster Hand. :angel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz