Philipp Hasenfratz: kann noch jemand DOS oder mysqldump mit Schoenheitsfehlern?

Beitrag lesen

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