![]() |
*.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:
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...
ShellExecute(self.handle, 'OPEN','F:\Datenupdate\DatenbankUpdate 11.02.2010\RUNQRY_AEPH\AEPH_001\Test.bat', '', '', SW_Show);
Wenn ich die Datei via Doppelklick öffne, funktioniert sie wunderbar. Folgender Inhalt steht in der BAT-Datei Zitat:
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 |
Re: *.bat Datei wird nicht richtig ausgeführt
hast es mal mit absoluten Pfaden im Batchfile versucht?
|
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);
![]() |
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; |
Re: *.bat Datei wird nicht richtig ausgeführt
cmd echo /? ECHO ohne was, gibt den Status von ECHO aus.
Code:
Der Punkt direkt in Anschluß besagt, daß du nur eine Leerzeile willst.
echo.
PS: Schneller Finger ... ein "PAUSE"-Befehl am Ende der Batch, gibt ein bissl mehr Zeit :zwinker: PSS: warum rufst du rtopcb nicht direkt auf? |
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:
Gruß Ykcim |
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 |
Re: *.bat Datei wird nicht richtig ausgeführt
Such mal in der MS-Hilfe nach "Batch" bzw. "Batchdateien".
Gruß K-H |
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) |
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: |
Re: *.bat Datei wird nicht richtig ausgeführt
Zitat:
Dieses "veraltet" scheint mir kein Argument. "Nicht mehr unterstützt" ist da schon besser. Gruß K-H |
Re: *.bat Datei wird nicht richtig ausgeführt
Zitat:
![]() |
Re: *.bat Datei wird nicht richtig ausgeführt
die command.com ist doch DOS (16 Bit)
die cmd.exe ist eine Consolen-Anwendung (32 Bit Windows) Und gibt es nicht mit DOS Probleme in Windows 64 ? |
Re: *.bat Datei wird nicht richtig ausgeführt
Hallo,
Zitat:
Vergebe in der Regel immer die Endung Bat und habe im Taskmanager noch nie dafür einen COMMAND.COM gesehen, sondern bisher immer nur CMD.EXE. Einfach mal ausprobieren: Eine Batchdatei mit folgendem Inhalt erstellen:
Code:
Den Taskmanager öffnen,
pause
Batchdatei aus dem Explorer per Doppelklick starten. Hier den Screenshot anhängen, in dem ein COMMAND.COM zusätzlich angezeigt wird. COMMAND.COM habe ich auf diese Weise seit Windows NT 4.0 nicht mehr gesehen. Bei meinen Rechnern, und all' den in der Administration betreuten, erscheint dann immer "nur" ein CMD.EXE zusätzlich. Mache ich da was falsch oder wird hier immer wieder etwas behauptet, was nicht zwingend der Realität entspricht? Über Google habe ich keine Bestätigung für die oben gemachte Aussage zu COMMAND.COM und CMD.EXE finden können. |
Re: *.bat Datei wird nicht richtig ausgeführt
Hallo zusammen,
stimmt da war etwas. Unter NT gab es noch eine "Command.com" die sich von der cm.exe unterschied. Diese "command.com" ist als Datei unter XP nicht mehr vorhanden. Als Console fungiert wohl die cmd.exe. Hier ein Ausschnitt aus der Windows-Hilfe: Zitat:
soweit ich weiß, können *.com Programme unter XP nicht mehr ausgeführt werden (andere innere Struktur,Speicherabbild) aber auch da laß ich mich gerne eines Besseren belehren. Gruß K-H |
Re: *.bat Datei wird nicht richtig ausgeführt
Liste der Anhänge anzeigen (Anzahl: 2)
Unter WIN XP kann man unter cmd.exe COMMAND.COM starten.
|
Re: *.bat Datei wird nicht richtig ausgeführt
Zitat:
Es ist schon so, dass Windows normalerweise dem Kommandointerpreter cmd.exe den Vorzug gibt. Man merkt das z.B. daran:
Code:
Obwohl command.com permanent geladen ist, wird dennoch cmd.exe ausgeführt.
C:\>command.com /P
Microsoft(R) Windows DOS (C)Copyright Microsoft Corp 1990-2001. Der Vdm-Redirector ist bereits geladen. C:\>ver Microsoft Windows XP [Version 5.1.2600] C:\> Unter bestimmten Umständen(*) wird aber tatsächlich noch COMMAND.COM (MS-DOS Version 5.00.500!) angezogen. *) Batchdatei ruft andere Batchdatei auf Diese Umstände scheinen sich durch die Servicepacks verändert zu haben. Ausserdem hängt es auch mit der Umgebungsvariable ComSpec zusammen. Auf Windows 2000 sieht die Sache so aus:
Code:
Hier erkennt man den kurzen Pfadnamen, dass tatsächlich COMMAND.COM geladen wurde.
C:\Dokumente und Einstellungen\Administrator>ver
Microsoft Windows 2000 [Version 5.00.2195] C:\Dokumente und Einstellungen\Administrator>command.com Befehl oder Dateiname nicht gefunden VDM-IPX/SPX-Unterstützung kann nicht geladen werden. Microsoft(R) Windows DOS (C)Copyright Microsoft Corp 1990-1999. C:\DOKUME~1\ADMINI~1> Auf "alten" Windowsversionen ist *.bat mit COMMAND.COM verknüpt. Microsoft hätte bestimmt auch nicht *.cmd eingeführt, wenn dahinter nicht eine bestimmte Absicht stehen würde: *.cmd verwendet immer cmd.exe, während *.bat ursprünglich auf COMMAND.COM verweist und später auf das neuere cmd.exe migriert wird. |
Re: *.bat Datei wird nicht richtig ausgeführt
.com laufen im XP noch, aber in einem 64-Bit-Windows wohl nicht mehr (richtig).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz