- - PR -
ASP.NET サーバ上でのバッチ起動
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-03-12 22:01
バッチ起動について、他のスレを見て試してみたのですが、どうも上手くいかないので、皆様のお知恵を拝借したいと思います。
例) http://xxx.xxx.xxxx.xx/test/xxxx.batをサーバ上で起動したいのです。 このバッチファイル内で使用するファイルも、 http://xxx.xxx.xxxx.xx/test/yyyy.txt http://xxx.xxx.xxxx.xx/test/zzzz.txt にあります。 xxxx.bat内には -------ここから ftp -s:yyyy.txt exit -------ここまで の記述があります。 yyyy.txt内には -------ここから open <ホスト名> <ユーザID> <パスワード> cd /test put zzzz.txt bye -------ここまで 要はzzzz.txtを指定したサーバにFTPしたいのです。 同様の以前のスレを参考に、 Dim ExecuteFile As String = Me.Request.PhysicalApplicationPath & "test\yyyy.bat" Dim argument As String = String.Format("4 ARGUMENTS") Dim inf As New Diagnostics.ProcessStartInfo(ExecuteFile, argument) inf.UseShellExecute = False ' STDOUTを受ける準備 inf.RedirectStandardOutput = True ' STDOUTを受ける宣言 inf.CreateNoWindow = True ' CMD.EXEのウインドウを出さない inf.WindowStyle = ProcessWindowStyle.Minimized ' 最小化させておく(不要?) Dim proc As New Diagnostics.Process proc.StartInfo = inf proc.Start() ということや Dim myprocess As New System.Diagnostics.Process myprocess.StartInfo.FileName = Me.Request.PhysicalApplicationPath & "test\yyyy.bat" myprocess.Start() などと試してもみましたが、正しくFTPができないようです。 testフォルダには実行権限も与えているのですが…。 何かを見落としているのか、実装困難なのか、 切り分けでもできるといいのですが…。 何かヒントでもあれば、よろしくお願いします。 | ||||
|
投稿日時: 2006-03-12 23:34
別の単純な bat ファイルでも試してみてください。 確認ポイントは以下のスレッドにもあがっています。 ASP.NETからバッチコマンドの実行 そういえば、このスレは結局どうなったんだろう... (;_ _) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-03-13 10:33
これだと、カレントフォルダのyyyy.txtですよね。 カレントフォルダは何処でしょうか? 一行だけならバッチファイルではなく、直接 ftp.exe を呼べばよいのでは? ASP.NETからping.exeを呼ぶサンプル http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=11677&forum=7 | ||||
|
投稿日時: 2006-03-13 18:35
じゃんぬねっとさん、todoさん、回答ありがとうございました。
前者: Dim inf As New Diagnostics.ProcessStartInfo(ExecuteFile, argument) での一連の処理ではinfの設定を細かく指定してもproc.Start()の値は正常なのに ファイルがFTPされていなかったのに対し、 後者: Dim myprocess As New System.Diagnostics.Process を使用したパターンで同様にWorkingDirectoryなどを細かく指定したら 何事もなかったかのようにファイルがFTPされました…。 なぜ前者と後者で違うのか、現在は比較している時間がないので、 時間がある時に調査しますが、取り急ぎ解決したことをご報告します。 貴重なお時間を割いて回答いただきありがとうございました。 |
1