Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi RunCommand, cmd und Leerstellen (https://www.delphipraxis.net/80478-runcommand-cmd-und-leerstellen.html)

jester42 9. Nov 2006 14:33


RunCommand, cmd und Leerstellen
 
Hi,

ich habe folgendes Problem: Ich will per RunCommand bzw. Kommandozeile von WinXP ein Backup einer MySQL-Datenbank wiedereinspielen. Mit dem Befehl
Code:
"C:\Program Files\Mysql\MySQL Server 5.0\bin\mysql.exe" --host=localhost --user=USER --password=PASSWORT --port=3306 DATENBANK < "C:\Documents and Settings\USER\Desktop\backup_061109142813.sql"
eingetippt in eine bestehende Eingabeaufforderung funktioniert dies auch problemfrei.

Starte ich aber via Start - Ausfuehren -
Code:
cmd /k "C:\Program Files\Mysql\MySQL Server 5.0\bin\mysql.exe" --host=localhost --user=USER --password=PASSWORT --port=3306 DATENBANK < "C:\Documents and Settings\USER\Desktop\backup_061109142813.sql"
(was genau dasselbe ist, nur halt als Parameter an cmd uebergeben), erhalte ich ein "'C:\Program' is not recognized" (englisches Windows -> C:\Program Files\...).

Mit
Code:
cmd /k "C:\Program Files\Mysql\MySQL Server 5.0\bin\mysql.exe" --host=localhost --user=USER --password=PASSWORT --port=3306 DATENBANK < C:\Documents and Settings\USER\Desktop\backup_061109142813.sql
(ohne die Anfuerungszeichen) gibt's ein "The system cannot find the file specified.". Hier ist definitiv das Backup-file gemeint, denn lasse ich die Pipe weg, startet ganz normal eine mysql-Konsole.

Lasse ich das "cmd /k" weg, wird bei beiden Varianten die mysql-Hilfe runtergerasselt, und das Fenster schliesst sich, bevor ich irgendwo einen Fehler finden koennte.

Hat jemand von euch eine Idee, wie ich das Backup ans Laufen kriege? Die Leerstellen in den Pfaden (Dokumente und Einstellungen, MySQL Server) sind nunmal da, aber anscheinend kommt Windows damit immer noch nicht klar...

Danke fuer eure Tips.

chaosben 10. Nov 2006 05:27

Re: RunCommand, cmd und Leerstellen
 
Hi jester42,

probier doch mal den Dateinamen(Backup) in Anführungszeichen zu setzen.
Code:
cmd /k "C:\Program Files\Mysql\MySQL Server 5.0\bin\mysql.exe" --host=localhost --user=USER --password=PASSWORT --port=3306 DATENBANK < "C:\Documents and Settings\USER\Desktop\backup_061109142813.sql"

<OT>
Zitat:

Zitat von jester42
denn lasse ich die Pipe weg, startet ganz normal eine mysql-Konsole.

Wo ist denn da ne Pipe?
Meinst du das "<"? Wenn ja, dann sag lieber "Eingabeumleitung" dazu, da verstehen dich auch die, die unter einer Pipe einerseits das Zeichen "|", als auch eine andere Technologie kennen. ;)
</OT>

jester42 10. Nov 2006 09:13

Re: RunCommand, cmd und Leerstellen
 
Erm... ich meinte doch Eingabeumleitung, sorry Leute.

Und Dein Code ist ziemlich identisch mit meinem 2. Beispiel - das es nicht tut :(
Weitere Vorschlaege?

shmia 10. Nov 2006 09:26

Re: RunCommand, cmd und Leerstellen
 
Mach dir doch einfach eine Batchdatei. Nimm dazu aber die Endung .CMD anstelle von .BAT,
damit CMD.exe anstelle von COMMAND.COM als Kommandozeilenprozessor verwendet wird.

Pürfe doch mal, ob das Verzeichnis "C:\Program Files\Mysql\MySQL Server 5.0\bin\" nicht schon im Suchpfad ist; falls nicht könntest du es hinzufügen.
Mit dem Suchpfad vereinfacht sich der Aufruf von mysql.exe deutlich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr.

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