Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Probleme mit Batchdatei

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Nash



Anmeldungsdatum: 18.07.2005
Beiträge: 6

BeitragVerfasst am: 18.07.2005, 09:42    Titel: Probleme mit Batchdatei Antworten mit Zitat

Hi!
Ich bin ein ziemlicher Anfänger in QBasic und hab ein Problem mit dem ich einfach nicht weiterkomme: Ich habe ein Menü geschrieben, mit dem ich verschiedene Batch Dateien die zur Instrallation dienen aufrufen möchte. Wenn ich die Batchdateien normal über windows aufrufe, funktioniert alles wie es soll. Wenn ich aber über mein QBasic menü gehe, funktionieren die Batch dateien nicht wie sie sollen. Ich benutze die in der Batch-datei die Befehle:
rmdir /s /q "c:\verzeichnis a"
md "c:\verzeichnis b"
xcopy /e /i /h "ordner" "c:\verzeichnis b"
und ich will zwei Installations-exe's aufrufen, was ich mit
cd "ordner\unterordner 1"
exe1.exe
cd..
cd "unterordner 2"
exe1.exe
gemacht habe.
Wenn ich die Batch von QBasic menü mit dem SHELL befehl ausführe, funktioniert der rmdir-Befehl nicht mit einer falscher Parameter meldung, der md-befehl funktioniert garnicht und die Installations-exe's werden nicht geöffnet.
Was tun sprach Zeus?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ioiCracr



Anmeldungsdatum: 06.07.2005
Beiträge: 24
Wohnort: Andernach (MYK)

BeitragVerfasst am: 18.07.2005, 09:54    Titel: Antworten mit Zitat

Also mit dem rmdir Befehl kann ich dir nicht weiter helfen, aber warum gibst du nicht für die aufzurufenden Dateien nicht den konkreten Pfad an? Ist doch viel einfacher statt 'cd' zu nutzen.
z.b. C:\BatchDateien\Prog1.bat

Könnte glaube ich daran liegen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 18.07.2005, 10:12    Titel: Antworten mit Zitat

Wenn du von QB ein unkompiliertes Programm, d.h. eine .BAS-Datei, aufrufst, liegt der aktive Pfad immer in dem
Verzeichnis, wo auch QB.EXE liegt.
Das heißt, CD gibt standardmäßig den Pfad von QB.EXE aus.
Wenn du dein Programm kompiliert hast, musst du die .EXE-Datei im selben Verzeichnis wie die Batchdateien ablegen.
WICHTIG: Wenn du diese von DOS aus aufrufst, liegt der aktive Pfad immer noch im Verzeichnis von DOS;
ein CD bringt dann nichts.

In der QBASIC-MonsterFAQ gibt es ein Programm mit einer Funktion namens exepath$.
Diese Funktion zeigt den richtigen Pfad an.
exepath$ funktioniert aber erst nach der Kompilation zur .EXE (wie der Name schon sagt).

Ansonsten mit korrekten Pfadangaben arbeiten.

D.h. anstelle von

exe1.exe

besser

c:\test\exe1.exe

Dabei auch die 8+3 - Regelung beachten.

jb


Zuletzt bearbeitet von jb am 18.07.2005, 10:16, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Nash



Anmeldungsdatum: 18.07.2005
Beiträge: 6

BeitragVerfasst am: 18.07.2005, 10:15    Titel: Antworten mit Zitat

Das QBasic Menü ist als exe-file im Arbeitsverzeichniss, in dem sich auch die Batchfiles befinden. Die Batchfiles werden ja ausgeführt, nur wie oben beschrieben nur unvollständig.

8+3 ist korrekt. Aber ich ändere mal die Pfade. Glaub aber nicht, das es daran liegt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 18.07.2005, 10:18    Titel: Antworten mit Zitat

Und wie startest du das?

Unter DOS via
Code:

c:\qbasic\exe1.exe


Wenn das der Fall ist, siehe oben, da hab ich's schon geschrieben.

Starte die .EXE dann doch mal mit einem simplen Doppelklick unter WINDOWS.

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Nash



Anmeldungsdatum: 18.07.2005
Beiträge: 6

BeitragVerfasst am: 18.07.2005, 10:43    Titel: Antworten mit Zitat

Vielleicht gehe ich das Problem mal andersherum an. Das Problem lässt sich ja evtl auch anders lösen.
Was ich will, ist ein Menü in dem ich mich zwischen 3 verschiedene Installationsvarianten entscheiden kann. Die Installation besteht aus:
1. dem Löschen alter Verzeichnisse
2. dem erstellen neuer Verzeichnisse
3. dem Kopieren von Dateien in diese Verzeichnisse
4. dem Kopieren von Dateien auf den Desktop
5. dem anschließenden Ausführen zweier Exe-Dateien
Da ich nicht weiss, wie/ob ich die Installation auch komplett mit QBasic vornehmen kann, hab ich Batch-dateien benutzt. Ich benutze Lange Dateinamen in "" in der Batchdatei, da diese sonst nicht funktioniert.
Vielleicht ist es leichter, wenn ihr einen anderen Lösungsweg vorschlagt.

Ansonsten werde ich die Pfade bei der bestehenden Datei nochmal ändern und kucken ob das was bringt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Nash



Anmeldungsdatum: 18.07.2005
Beiträge: 6

BeitragVerfasst am: 18.07.2005, 10:46    Titel: Antworten mit Zitat

Kann ich die Batch dateien auch anders aus meinem Programm aufrufen als mit dem SHELL befehl? Vielleicht liegts ja daran.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Charly2



Anmeldungsdatum: 28.11.2004
Beiträge: 29
Wohnort: Mittelfranken

BeitragVerfasst am: 18.07.2005, 12:29    Titel: Antworten mit Zitat

Hallo,

beim Shell-Befehl in QBasic wird die Batch-Datei mit Command.com abgearbeitet, während beim Aufruf unter Windows CMD.EXE verwendet wird.
Command.com kennt keine langen Dateinamen, vielleicht liegt hier
das Problem.
Probier mal den Shell-Befehl wie folgt abzuändern:

SHELL "CMD /C abc.bat"

anstatt abc.bat setze den Namen deiner Batch-Datei ein.

Mfg
Charly
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 18.07.2005, 12:54    Titel: Antworten mit Zitat

Also, RMDIR und MKDIR sind feststehende QuickBASIC-Befehle.

Für CD habe ich oben schon einen Link zur MonsterFAQ gegeben.

Zum Löschen der Dateien nimmst du den Befehl KILL; wenn du alle Dateien in einem Verzeichnis
löschen willst, machst du das z.B: so:
Code:
KILL "C:\TEST\*.*"


jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Nash



Anmeldungsdatum: 18.07.2005
Beiträge: 6

BeitragVerfasst am: 18.07.2005, 14:09    Titel: Antworten mit Zitat

Mit SHELL "CMD /C abc.bat" klappts! cool
Das Problem war wohl wirklich mit der Command.com. Erscheint mir auch logisch. Jetzt läuft alles super.

Vielen Dank für die schnelle Hilfe! grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz