• 締切済み

途中で処理が終了してしまう

OS:Windows2000server AIXからこのマシン上のコマンドスクリプトをキックしています。 内容は以下のようなものです。 ------------------------------------------------------------- ECHO OPEN %FTP_SERVER% >ftpput.ini ECHO %FTP_USER%>>ftpput.ini ECHO %FTP_PASSWORD%>>ftpput.ini ECHO ascii>>ftpput.ini ECHO cd %FTP_DIR%>>ftpput.ini ECHO MPUT C:\DIR\*.txt>>ftpput.ini ECHO BYE>>ftpput.ini exeファイルを実行し、C:\DIRにテキストファイルをセット ftp -i -s:ftpput.ini del ftpput.ini copy C:\DIR\*.txt C:\BK del C:\DIR\*.txt ------------------------------------------------------------- 通常、この一連の処理は問題なく完了するのですが、たまにcopy以下の処理が 実行されなかったり、copyまでは実行されるがdelが実行されなかったりすること があります。 ちなみに、この処理は30分おきに自動稼動していて転送するテキストファイルは 通常きちんと削除されていれば0~3ファイルです。 このような現象が発生してしまうのはなぜでしょうか? お分かりになる方がいましたら、教えて下さい。 よろしくお願いします。

みんなの回答

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.1

copyとdelをmoveに置き換えてもダメですか? move C:\DIR\*.txt C:\BK\

hiramasa
質問者

お礼

返信が遅くなってすみません。 回答ありがとうございました。 代替案はそれはそれでありがたいのですが、 根本の原因が知りたいのです。

関連するQ&A

  • windows2008でftpをバッチ実行する。

    windows2008サーバーでバッチファイルを作成しftpで複数ファイルを自動転送しようと思います。 今まで(OSはXP)はうまく実行していたのですが、windows2008サーバーではうまくいきません。 ちなみにバッチファイルは @echo off echo ●FTP処理 C:\Windows\System32\ftp.exe -s:d:\ftp\tohost.txt echo on @echo off echo ●終了 tohost.txtの内容は open 192.168.1.1 Uid Pwd bin put d:\ftpdata\a1.txt /afld/a2.txt bye です。 何かwindows2008による特別な方法があるのでしょうか? よろしくお願いいたします。

  • 終了コード errorlevel の考え方について

    こんばんは。 OSはWindowsXP Proを使っています。 テキストファイルに書いてある値を 終了コードにするバッチファイルを作成しました。 以下の2ファイルを同じディレクトリに保存します。 test.txt ┌--------┐   1 └--------┘ test.bat ┌---------------------------------------┐   @echo off   find "0" test.txt   if not errorlevel 1 exit /b 0   find "1" test.txt   if not errorlevel 1 exit /b 1   echo テキストは0~1の値ではありません。   exit /b 2 └---------------------------------------┘ この状態で次のように実行します (1) C:\>test.bat ---------- TEST.TXT ---------- TEST.TXT 1 (2) C:\>echo %errorlevel% 1 (3) C:\>set errorlevel=0 (4) C:\>echo %errorlevel% 0 ※ここでtest.txtの中の数字を2にします。 (5) C:\>test.bat ---------- TEST.TXT ---------- TEST.TXT テキストは0~1の値ではありません。 (6) C:\>echo %errorlevel% 0 (7) C:\>set errorlevel= (8) C:\>echo %errorlevel% 2 となります。 (2)の結果から、(1)で実行した「exit /b 1」でerrorlevelに1が格納されることが判ります。 しかし、(6)の結果から、(3)で実行した「set errorlevel=0」が (5)で実行した「exit /b 2」より優先されていることが判ります。 しかし(7)でerrorlevelの値を消去したように思われますが、 (8)の結果から、(3)のセットを消去しつつ(5)で実行した「exit /b 2」を記憶しているように見えます。 この挙動について、どのように理解すれば良いのでしょうか。 また「exit /b ○」と「set errorlevel=○」でセットする違いについて教えて頂ければと思います。 お願いします。

  • ファイルのバッチ処理について

    バッチ処理を勉強しているところです。 ひとつの問題が解決できていないので、わかるひとは教えて もらえませんか? C:\bom.txtがあって、C:\temp\a.txtとC:\temp\d.txt, C:\temp\a\a.txt と C:¥temp\b\e.txtもあります。 for でC:\bom.txtファイルとほかのファイルと再帰的に結合して、 ファイル名はそのままにしたいですが、 @set bomfilepath=C:\ 考えているバッチは以下のようになるが、失敗しました。 for /R %1 %%f in (*.*) do @( @rem echo %%f call copy /B %bomfilepath%bom.txt+%%f %%ftemp call del /Q %%f ren %%ftemp %%f ) 原因はどこですか?

  • コマンドプロンプト FTPコマンドについて

    こんばんわ。 今回はコマンドプロンプトのFTPコマンドについて質問させてください。 処理概要 Windowsバッチにて、サーバA(Windows)からサーバB(UNIX)にFTPでファイルを複数送りたい その際、FTPが成功したか失敗したかをログファイルに出力したい。 以下プログラム set logDir=C:\hogehoge\log\ set settingFileName=C:\hogehoge\upload.ftp set execDate=%date:~-10,4%%date:~-5,2%%date:~-2,2% set logFileName=%logDir%log_%execDate%.txt echo FTPバッチ起動 >> "%logFileName%" cd C:\hogehoge echo FTP開始 >> "%logFileName%" ftp -s:"%settingFileName% >> "%logFileName%" upload.ftpというファイルには以下のように記述しております。 ftp open サーバIP ポート ログインID パスワード binary prompt mput *.csv bye この2種類のファイルで、FTPは出来るのですが、 どうにかして成功/失敗を判断したいです。 どなたかわかる方、ご教授お願いいたします。 補足 UNIX上のバッチ処理(Cシェル)でもファイルがあるかどうか判断していますが、 WindowsでFTP失敗の場合、メールを送りたくてこのようなバッチを作成しました。

  • 異常終了処理について

    サーバーに接続できない場合、FTPアカウントやパスワード異常、ディレクトリ変更時、登録されていないディレクトリ移行をした場合や、ディレクトリに該当データがない場合、それぞれ何もせず処理終了するというルーチンを作りたいのですが、サーバー異常のときは下記のif文を挿入していますが、他の各処理でどのような判断をいれるとよいのかわからないのですが。 現在は下記のように記述しています。 $FTP = Net::FTP -> new($FTPserver) or warn('初回Net::FTP失敗'); # FTP接続 if ($FTP) { $FTP -> login($FTPuser, $FTPpass) or warn('初回login失敗'); # ログイン $FTP -> cwd($FTPdir) or warn('cwd失敗'); # ディレクトリの変更 opendir(DIR, $FTPdir); @FTPlist = grep (/^$head$year$mon$mday.*\.csv$/, readdir(DIR)); closedir(DIR);

    • ベストアンサー
    • Perl
  • SolarisからWindowsへFTPするときのオプション

    Solaris8上でftpコマンドに関するのシェルを作成しています。 処理概要はSolaris上にあるファイルをWindwosのFTPサーバーに送信したいのです。そのFTP処理時、FTPの一連のコマンドを記入したテキストファイルを指定して実行したいのです。Windows上でバッチ処理をするときは、以下のように処理しています。  ftp -s:xxxx.txt  (ここでxxxx.txtには、ftpコマンドが記入) Solaris上でftpのオプションをmanで確認したいのですが、それらしきものがありませんでした。  よろしくお願いします。

  • バッチファイルからiniファイルを読み込みftpを行いたい

     バッチファイルからftpを行い他のサーバにput(mput?)を行いたいのですが、idとパスワードを*.ini(名前は決めていません)から 取ってきたいのです。  どうすればいいのでしょうか?他のファイルを呼ぶにはcall分を使うと記述してあったのですが、*iniファイルでも大丈夫なのでしょうか?  dosコマンドとかWindws環境に弱いので教えてください。お願いします。

  • バッチファイルからiniファイルを読み込みたいのですが?

     バッチファイルからftpを行い他のサーバにput(mput?)を行いたいのですが、idとパスワードを*.ini(名前は決めていません)から 取ってきたいのです。  どうすればいいのでしょうか?他のファイルを呼ぶにはcall分を使うと記述してあったのですが、*iniファイルでも大丈夫なのでしょうか?  dosコマンドとかWindws環境に弱いので教えてください。お願いします。

  • FTPのコマンド「mput」について

    FTPで、ファイルを一括して、サーバーに送りたいのですが、その際に 「mput *.* *.*」などとすると、それぞれのファイルが2回putされます。これは、仕様でしょうか。 例えば、1つのファイル「A.txt」を mput した場合と、put した場合では、下記のようになります。 <mput> ************************ ftp> mput A.txt A.txt 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.01Seconds 10615.47Kbytes/sec. 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.00Seconds 159232000.00Kbytes/sec. ************************ <put> ************************ ftp> put A.txt A.txt 200 PORT command successful. 150 Opening BINARY mode data connection for A.txt. 226 Transfer complete. ftp: 159232 bytes sent in 0.01Seconds 10615.47Kbytes/sec. ************************

  • コマンドプロンプトを使ったFTPの自動化(応用)

    バッチファイルを作成して、FTPでファイルをサーバーにアップする事は旨く行きました。 以下のサイトを参考にしました。 http://www.ponko2.com/ftp_bat.html ただ、応用しようと思って行き詰っております。 複数のサーバー(100個以上ある)にファイルをアップロードしたいのですた、 同じファイルを複数作るのではなく、もっと効率のよい方法が無いかと思って質問させていただきます。 私の理想としては、サーバー情報を書いたテキストファイル(1行1サーバー情報)を用意して、 そこから1行ずつ読み込んで実行していくというプログラムは書けないのでしょうか? テキストファイルには、1行ずつ以下の情報を入れます。 「FTP先サーバー,ID,パスワード,アップロードする場所,ファイルの場所」 これを1行ずつ読み込んで、実行していくという事って可能でしょうか? 以下のデータの★の部分をテキストから読み込んで、テキストの行が終わるまで実行し続けてほしいです。 open ★(FTP先サーバー) ★(ログインユーザー名) ★(パスワード) asc prompt cd ★(アップロードする場所)\aaa lcd ★(ファイルの場所)\aaa mput * cd ★(アップロードする場所)\bbb lcd ★(ファイルの場所)\bbb mput * 。。。複数のフォルダがあるのでその中のファイルをすべてアップロードしていく bye わかる方居ましたら教えていただけると助かります。