Halihallo Dieter
Die Batch Datei (mysqldump habe ich in die PATH Variable eingetragen)
Nicht mysqldump musst du eintragen, sondern das Verzeichnis; wirst du aber wohl richtig
eingetragen haben, da es sonst nicht funktionieren würde...
@echo off
mysqldump --add-drop-table -q -u%1 -p%2 -h%3 %4 objekte attribute > %5
mysqldump --add-drop-table -q -u%1 -p%2 -h%3 %4 web > %6
@echo off
exit
das zweite @echo off ist redundant (der echo ist ja bereits auf off) und exit ist
ebenfalls implizit (letzte Zeile => automatisches Ende).
Wenn Du mir jetzt noch beibringen kannst, wie ich verhindere, dass ueberhaupt ein Fenster von CMD aufgeht, waere ich restlos zufrieden fuer heute ;-)
Komisch, dass der Aufruf von system ein Eingabefenster öffnet... Wird wirklich eine
Eingabeaufforderung geöffnet, wenn du system( 'mysqldump ...' ) ausführst? - Sollte
meiner Meinung nach im selben Prozess ausgeführt werden...
Leider kenne ich mich hier mit PHP etwas zu wenig aus. In Perl könntest du auf die
Win32-Module zurückgreifen und einen hidden-Prozess starten, ginge ganz einfach.
In PHP gibt's natürlich die Möglichkeit über OLE auf Systemkomponenten zuzugreifen,
mit Hilfe dieser kannst du einen "versteckten"-Prozess starten und dort deine Batch
ausführen. Leider kenne ich die Kommandos nicht auswendig.
Andere Möglichkeiten:
shell_exec
exec
popen
versuch die Mal durch und informiere dich über www.php.net; evtl. kannst du versuchen,
den Output ins nirvana zu senden >NUL, wobei dies wohl kaum dazu führt, die
Eingabeaufforderung nicht aufzurufen.
Was anderes fällt mir z. Z. nicht ein.
Viele Grüsse
Philipp