Wie ruft man in der .bat Datei ein Programm auf?
-
Dosfan
Wie ruft man in der .bat Datei ein Programm auf?
Hallo
ich habe folgende .bat Datei mit dem Namen dcompile.bat
@echo off
REM ================================
REM DOS-kompatibles Build-Skript für go32v2
REM ================================
REM Pfad zum DOS go32v2 FPC Compiler (in G: gemountet)
SET FPC=G:\BIN\GO32V2\FPC.EXE rem der FPC Compiler für DOS
REM Library-Pfad für Units
SET LIB=G:\FPC\PROJECTS\FPGUIDOS\LIB\GO32V2 rem will damit den Unit Binärpfad einstellen
REM Prüfen, ob der Compiler existiert
IF NOT EXIST %FPC% GOTO NOTFOUND rem warum wirr FPC nicht gefunden obwohl im Pfad?
REM Quellcode-Pfad (alle Pfade müssen in 8.3-Format sein)
SET SRC=G:\FPC\PROJECTS\FPGUIDOS\SRC\DOSUNITS\__FPGUI.PAS rem will damit den Source-pfad einstellen
ECHO ================================
ECHO Starte DOS Build für go32v2
ECHO ================================
REM Kompiliere
G:\BIN\GO32V2\FPC.EXE -TGO32V2 -PI386 -FU%"LIB%" "%SRC%" rem so will ich den Compiler aufrufen
GOTO END
:NOTFOUND
ECHO FPC nicht gefunden! Prüfe Pfade!
:END
ECHO Build fertig.
PAUSE
Warum funktioniert dieser Aufruf nicht? Habe doch den Pfad korrekt angegeben, in der Dosbox nochmals geprüft.
Auch die Quellcode Pfade stimmen. Was ist da in der .bat Datei noch falsch?
ich habe folgende .bat Datei mit dem Namen dcompile.bat
@echo off
REM ================================
REM DOS-kompatibles Build-Skript für go32v2
REM ================================
REM Pfad zum DOS go32v2 FPC Compiler (in G: gemountet)
SET FPC=G:\BIN\GO32V2\FPC.EXE rem der FPC Compiler für DOS
REM Library-Pfad für Units
SET LIB=G:\FPC\PROJECTS\FPGUIDOS\LIB\GO32V2 rem will damit den Unit Binärpfad einstellen
REM Prüfen, ob der Compiler existiert
IF NOT EXIST %FPC% GOTO NOTFOUND rem warum wirr FPC nicht gefunden obwohl im Pfad?
REM Quellcode-Pfad (alle Pfade müssen in 8.3-Format sein)
SET SRC=G:\FPC\PROJECTS\FPGUIDOS\SRC\DOSUNITS\__FPGUI.PAS rem will damit den Source-pfad einstellen
ECHO ================================
ECHO Starte DOS Build für go32v2
ECHO ================================
REM Kompiliere
G:\BIN\GO32V2\FPC.EXE -TGO32V2 -PI386 -FU%"LIB%" "%SRC%" rem so will ich den Compiler aufrufen
GOTO END
:NOTFOUND
ECHO FPC nicht gefunden! Prüfe Pfade!
:END
ECHO Build fertig.
PAUSE
Warum funktioniert dieser Aufruf nicht? Habe doch den Pfad korrekt angegeben, in der Dosbox nochmals geprüft.
Auch die Quellcode Pfade stimmen. Was ist da in der .bat Datei noch falsch?
Re: Wie ruft man in der .bat Datei ein Programm auf?
Hi!
Ist Deine bat-Datei inkl aller rems?
Dann kann das mal nicht funktionieren, weil REM in batches nicht wie in z.B. Basic funktioniert.
SET FPC=G:\BIN\GO32V2\FPC.EXE rem der FPC Compiler für DOS
setzt die Variable FPC auf den Wert "G:\BIN\GO32V2\FPC.EXE rem der FPC Compiler für DOS" somit hast Du den falschen Dateinamen in der Variable.
Und beim Aufruf hast Du " und % vertauscht bei -FU%"LIB%"
schubl
Ist Deine bat-Datei inkl aller rems?
Dann kann das mal nicht funktionieren, weil REM in batches nicht wie in z.B. Basic funktioniert.
SET FPC=G:\BIN\GO32V2\FPC.EXE rem der FPC Compiler für DOS
setzt die Variable FPC auf den Wert "G:\BIN\GO32V2\FPC.EXE rem der FPC Compiler für DOS" somit hast Du den falschen Dateinamen in der Variable.
Und beim Aufruf hast Du " und % vertauscht bei -FU%"LIB%"
schubl
Soviel Retro und nur sowenig Zeit... laufender WIP...
8086, 286, 386, 486, P1, P2, P3, P4 und dann noch Amiga, Atari, C64/128,...
8086, 286, 386, 486, P1, P2, P3, P4 und dann noch Amiga, Atari, C64/128,...
-
Dosfan
Re: Wie ruft man in der .bat Datei ein Programm auf?
Wie mache ich es dann richtig? Ich probier schon mehrere Tage daran rum und komme einfach nicht auf die korrekte Syntax. Und wie formuliert man dann in der .bat Datei die Kommentare? Ich habe noch nie groß mit .bat Dateien gearbeitet. Sorry!
-
Dosfan
Re: Wie ruft man in der .bat Datei ein Programm auf?
Wie mache ich es dann richtig? Ich probier schon mehrere Tage daran rum und komme einfach nicht auf die korrekte Syntax.
Ich habe vor sehr langer Zeit mal eine Batch Datei geschrieben, weiß aber leider gar nichts mehr davon, ich dachte aber ich könnte das noch. Wo gibt es anfängerfreundliche Dokus dafür, mit leicht verständlichen Beispielen? Und wie formuliert man dann in der .bat Datei die Kommentare? Ich habe noch nie groß mit .bat Dateien gearbeitet. Sorry!
Ich habe vor sehr langer Zeit mal eine Batch Datei geschrieben, weiß aber leider gar nichts mehr davon, ich dachte aber ich könnte das noch. Wo gibt es anfängerfreundliche Dokus dafür, mit leicht verständlichen Beispielen? Und wie formuliert man dann in der .bat Datei die Kommentare? Ich habe noch nie groß mit .bat Dateien gearbeitet. Sorry!
Re: Wie ruft man in der .bat Datei ein Programm auf?
Du könntest mal folgendes probieren:
REM in DOS ist wie ein Befehl und darf deshalb nur alleine in einer Zeile stehen.
schubl
Code: Alles auswählen
@echo off
REM ================================
REM DOS-kompatibles Build-Skript für go32v2
REM ================================
REM Pfad zum DOS go32v2 FPC Compiler (in G: gemountet)
REM der FPC Compiler für DOS
SET FPC=G:\BIN\GO32V2\FPC.EXE
REM Library-Pfad für Units
SET LIB=G:\FPC\PROJECTS\FPGUIDOS\LIB\GO32V2
REM Prüfen, ob der Compiler existiert
IF NOT EXIST %FPC% GOTO NOTFOUND
REM Quellcode-Pfad (alle Pfade müssen in 8.3-Format sein)
SET SRC=G:\FPC\PROJECTS\FPGUIDOS\SRC\DOSUNITS\__FPGUI.PAS
ECHO ================================
ECHO Starte DOS Build für go32v2
ECHO ================================
REM Kompiliere
G:\BIN\GO32V2\FPC.EXE -TGO32V2 -PI386 -FU"%LIB%" "%SRC%"
ECHO Build fertig.
GOTO END
:NOTFOUND
ECHO FPC nicht gefunden! Prüfe Pfade!
:END
PAUSEschubl
Soviel Retro und nur sowenig Zeit... laufender WIP...
8086, 286, 386, 486, P1, P2, P3, P4 und dann noch Amiga, Atari, C64/128,...
8086, 286, 386, 486, P1, P2, P3, P4 und dann noch Amiga, Atari, C64/128,...
-
Dosfan
Re: Wie ruft man in der .bat Datei ein Programm auf?
Danke Dir, wie verrückt, jetzt funktioniert das Batch File. Musste allerdings die -PI386 Option entfernen, damit das funktioniert, ich hoffe jetzt einfach mal dass -Pi386 Option die Standard Einstellung ist, anderenfalls muss ich die Schreibweise dieser Option ändern, falls das Kompilat nicht funktioniert. Allerdings akzeptiert Freepascal auch meine beiden Unterstriche am Beginn meines Dateinamen nicht. Dieen muss ich deshalb auch noch ändern. Aber so kann ich jetzt weiter machen. Der Buchstabe "i" in der Option für die CPU muss lt. Liste der Kommandozeilenoptionen klein geschrieben werden, nur das "P" ,das die Option kennzeichnet, bleibt groß gesschrieben. Du hast in der Batch Datei dieses "I" aber auch groß geschrieben. Deshalb wurde dies Option nicht akzeptiert. Habe sie erst mal entfernt. Wenn ich sie doch benötigen sollte muss ich die Schreibweise halt anpassen. Kleines "i" dann! Das Andere passt so. Danke!
Re: Wie ruft man in der .bat Datei ein Programm auf?
Freut mich, dass es jetzt funktioniert.
Das I hab ich von Deinem Beitrag kopiert, kenne die Optionen von FPC nicht
schubl
Das I hab ich von Deinem Beitrag kopiert, kenne die Optionen von FPC nicht
schubl
Soviel Retro und nur sowenig Zeit... laufender WIP...
8086, 286, 386, 486, P1, P2, P3, P4 und dann noch Amiga, Atari, C64/128,...
8086, 286, 386, 486, P1, P2, P3, P4 und dann noch Amiga, Atari, C64/128,...
-
Dosfan
Re: Wie ruft man in der .bat Datei ein Programm auf?
Jetzt tritt anderes Problem auf, ich kann meine Dateien nicht in meinen Ordner kopieren.
xcopy f:\FPC\Projects\fpguidos\src\dosunits\ *.* G:\FPC\PROJECTS\FPGUIDOS\SRC\DOSUNITS\ /E /C \H \I
Der Kopiervorgang wird nicht ausgeführt, bricht mit der Fehlermeldung ab, dass er den Ordner dosunits nicht erstellen könne, den habe ich aber vorher schon erzeught. was ist da jetzt los? Schreibrecte liegen vor.
xcopy f:\FPC\Projects\fpguidos\src\dosunits\ *.* G:\FPC\PROJECTS\FPGUIDOS\SRC\DOSUNITS\ /E /C \H \I
Der Kopiervorgang wird nicht ausgeführt, bricht mit der Fehlermeldung ab, dass er den Ordner dosunits nicht erstellen könne, den habe ich aber vorher schon erzeught. was ist da jetzt los? Schreibrecte liegen vor.
Re: Wie ruft man in der .bat Datei ein Programm auf?
xcopy f:\FPC\Projects\fpguidos\src\dosunits\ *.* G:\FPC\PROJECTS\FPGUIDOS\SRC\DOSUNITS\ /E /C \H \I
vor *.* ist ein Leerzeichen und die beiden letzten Optionen haben einen \ statt einen /
Probiers mal mit
xcopy f:\FPC\Projects\fpguidos\src\dosunits\*.* G:\FPC\PROJECTS\FPGUIDOS\SRC\DOSUNITS\ /E /C /H /I
vor *.* ist ein Leerzeichen und die beiden letzten Optionen haben einen \ statt einen /
Probiers mal mit
xcopy f:\FPC\Projects\fpguidos\src\dosunits\*.* G:\FPC\PROJECTS\FPGUIDOS\SRC\DOSUNITS\ /E /C /H /I
Soviel Retro und nur sowenig Zeit... laufender WIP...
8086, 286, 386, 486, P1, P2, P3, P4 und dann noch Amiga, Atari, C64/128,...
8086, 286, 386, 486, P1, P2, P3, P4 und dann noch Amiga, Atari, C64/128,...
-
Dosfan
Re: Wie ruft man in der .bat Datei ein Programm auf?
Leider auch nicht, irgendwas scheint hier generell nicht zu stimmen. Aber was? ich arbeite mit Dosbox-x, deren .conf Datei sieht so aus:
[dosbox]
securemode=false
longnames=false
ffn=false
memsize=131072
[sdl]
fullscreen=false
[cpu]
core=normal
cputype=pentium
cycles=auto
[dos]
lfn=true
emm=true
[dpmi]
dpmi.memory = 2048
[autoexec]
#f:\starlfn -I F
ver=7.1
mount f c:\dosimages\
#f:\lfn\doslfn -w+ -t+
imgmount h c:\dosimages\fd14full.img
imgmount g c:\dosimages\dos.img -t hdd fat
g:
mkdir fpc_tmp
cd fpc_tmp
SET CWSDPMI_SWAP=G:\fpc_tmp
g:\fpc\bin\go32v2\cwsdpmi -p -s-
xcopy F:\fpc\projects\fpGUIdos\src\dosunits\*.* g:\fpc\projects\fpGUIdos\src\dosunuts\ /E /C /H /I aber auch
copy F:\fpc\projects\fpGUIdos\src\dosunits\*.* g:\fpc\projects\fpGUIdos\src\dosunuts\ will nicht so, wie ich will
Habe auch extra noch mal in mein Laufwerk f: geguckt, ob da überhaupt kopierbare Dateien drin sind im Oddner ..\..\
dosunits\
Ich weiß echt nicht mehr weiter.
[dosbox]
securemode=false
longnames=false
ffn=false
memsize=131072
[sdl]
fullscreen=false
[cpu]
core=normal
cputype=pentium
cycles=auto
[dos]
lfn=true
emm=true
[dpmi]
dpmi.memory = 2048
[autoexec]
#f:\starlfn -I F
ver=7.1
mount f c:\dosimages\
#f:\lfn\doslfn -w+ -t+
imgmount h c:\dosimages\fd14full.img
imgmount g c:\dosimages\dos.img -t hdd fat
g:
mkdir fpc_tmp
cd fpc_tmp
SET CWSDPMI_SWAP=G:\fpc_tmp
g:\fpc\bin\go32v2\cwsdpmi -p -s-
xcopy F:\fpc\projects\fpGUIdos\src\dosunits\*.* g:\fpc\projects\fpGUIdos\src\dosunuts\ /E /C /H /I aber auch
copy F:\fpc\projects\fpGUIdos\src\dosunits\*.* g:\fpc\projects\fpGUIdos\src\dosunuts\ will nicht so, wie ich will
Habe auch extra noch mal in mein Laufwerk f: geguckt, ob da überhaupt kopierbare Dateien drin sind im Oddner ..\..\
dosunits\
Ich weiß echt nicht mehr weiter.
-
Dosfan
Re: Wie ruft man in der .bat Datei ein Programm auf?
Alles gut. Kopieren hat funktioniert, es war ein Schreibfehler meinerseits, nicht der Backslash anstelle des Vorwärts Slash, den hatte ich vorher schn korrigiert, nein es war der Ordnername \dosunuts statt \dosunits. Das kann natürlich nicht funktionieren.
Darf wohl auch nicht mal in einer super guten KI funktionieren, dann würde ich meine Units im falschen Ordner suchen. (dosunuts statt dosunits). Frustrierend solche Schreibfehler. Ich sollte mir jetzt erst mal ne Pause gönnen! 