- - PR -
コマンドプロンプトから実行
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-05-03 13:08
こんにちは。
MySQL5のバックアップをVB6のアプリ上から行いたいのですが、 実行エラーになります。 VB6から実行される時の半角スペースがchar(34)に変換してもうまくできませんでした。 手動でDOSから "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe" -u root -p --databases testdb > C:\bak\20081010_101010.dmp はパスワードを要求されますが、成功しました。 VB6ではこんな漢字のソースです。 Private Const BAK_CMD1 = "command.com /c" Private Const BAK_CMD2 = """" & "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe" & """" Private Const BAK_CMD3 = " -u root -p --databases testdb > " Dim bakf as String bakf = """" & "C:\bak\20081010_101010.dmp" & """" Shell BAK_CMD1 & BAK_CMD2 & BAK_CMD3 & bakf, 1 で実行しました。 何が悪いのでしょうか? また、mysqldump.exeが要求するパスワードをVB6内で実行させるすべはないのでしょうか? よろしくお願いします。 |
|
投稿日時: 2008-05-03 13:34
/で表示されてますが、エンマークです。
|
|
投稿日時: 2008-05-03 20:48
こんにちは。
一応、実行まではできました。cmd.exe /kとして実行して、DOS窓を開くように変えました。なぜか、バックアップファイル指定がまずかったようで、ダブルクオーテーションくくりをはずした所、うまくいきました。 半角スペースの文字列を含んだパスでも含まないパスでも同じでした・・。?? ただ、実際にやりたい事はDOS窓を開かないまま、バックアップ処理をしたいのですが、 これはむりなのでしょうか? パスワード要求はmysql.exe,mysqldump.exeのプログラムの要求後の感じもしますし・・。 ん〜・・。 よろしくお願いします。 |
|
投稿日時: 2008-05-08 20:44
度々、失礼します。
今、こんな感じでコマンドプロンプトで実行できてますが cmd = "cmd.exe /k " & Chr(34) & "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe" & Chr(34) & " -u root -p --databases testdb > " & "C:\bak\bak_1.dmp" Ret1 = Shell(cmd, 1) @↑ Amysqlpassword(改行) Bexit(改行) と同時に行いたいのですが、何か方法はないでしょうか? 自分で@〜Bをプロンプトに貼り付けた場合、実行できるので可能だと思うのですが、 VBからの改行コードが読み取れないようです(batファイルはなるべくやりたくないです)。 Debug.printでは改行されているんですが、起動されたDOS窓を見る限り、改行を読み取ってくれません。 Chrでもvbcrlfでもだめでした。 よろしくお願いします。 |
1