- PR -

ASP.NET サーバ上でのバッチ起動

1
投稿者投稿内容
ぎん
会議室デビュー日: 2006/03/12
投稿数: 5
投稿日時: 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フォルダには実行権限も与えているのですが…。

何かを見落としているのか、実装困難なのか、
切り分けでもできるといいのですが…。

何かヒントでもあれば、よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-12 23:34
引用:

ぎんさんの書き込み (2006-03-12 22:01) より:

正しくFTPができないようです。


別の単純な bat ファイルでも試してみてください。
確認ポイントは以下のスレッドにもあがっています。

  ASP.NETからバッチコマンドの実行

そういえば、このスレは結局どうなったんだろう... (;_ _)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-03-13 10:33
引用:

xxxx.bat内には
-------ここから
ftp -s:yyyy.txt
exit
-------ここまで
の記述があります。



これだと、カレントフォルダのyyyy.txtですよね。
カレントフォルダは何処でしょうか?

一行だけならバッチファイルではなく、直接 ftp.exe を呼べばよいのでは?

ASP.NETからping.exeを呼ぶサンプル
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=11677&forum=7
ぎん
会議室デビュー日: 2006/03/12
投稿数: 5
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)