• 締切済み

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による特別な方法があるのでしょうか? よろしくお願いいたします。

みんなの回答

  • te2kun
  • ベストアンサー率37% (4557/12166)
回答No.1

UACを有効にしているのではないですか? 実行時に管理者権限で実行しておりますか? Vista以降では、バッチファイルを実行するときには、管理者権限で実行する必要があります 2003以前のXPなどには、UACはありませんでしたので。

ihr0515
質問者

補足

質問に書き忘れました。 先のバッチファイルを独自で起動すると実行します(正常終了) しかし他のバッチから起動するとログインはできるのですが転送できません。 よろしくお願いいたします。

関連するQ&A

  • FTPの作業をWindows上のバッチでおこないたい

    こんにちは。Windowsは初心者です。 あるファイルを別のサーバーにFTP(PUT)したいと考えています。 コマンドプロンプトからFTPのコマンドをたたくのではなく なにかバッチファイル?のようなもので、中に一連のFTP処理を記述し バッチファイルを起動という形で処理を行ないたいのです。 バッチファイルの作成の方法がわかりません。 またFTPの記述の仕方がわかりません。あるファイルを別のサーバに FTP(PUT)したいだけなのです。またエラーも認知したいとも思っています。 どんな本を読めば分かりますでしょうか? また具体的なコード(バッチに記述するFTPのコード)を知っていましたら 教えて下さい。

  • Windows マシンでFTPバッチが動かない

    Windowsサーバから、UNIXサーバにFTPでファイル取得しようとすると、エラーがでてすすみません。 コマンドプロンプトで 対話的に動かす分には問題なく動作するのですが、バッチで動かすと エラーがでてしまうのです。 動かそうとしているバッチファイルとその読み込みスクリプトは以下です。 (変数部分はぼかしています) ==== myftp.bat BGN ==== set dirname=%DATE:/=% mkdir D:\master\%dirname% ftp -s:ftpcmd.txt ==== myftp.bat END ==== ==== ftpcmd.txt BGN ==== open hoge user_naem pass_word bin lcd D:\master get file.txt quit ==== ftpcmd.txt END ==== これらを動かすと、 スクリプト ファイル ftpcmd.txt を開くときにエラーが発生しました。 というエラーがでて前に進みません。 対話ベースでは、ftpcmt.txt ファイルの内容をコピペして、きちんと動くので、 何が原因がわかりかねています。 どなたか知恵を貸してください。

  • WindowsのバッチファイルでFTP転送

    PC-A(Windows)内の特定のデータを、PC-B(Linux)内の特定のフォルダにコピーするのに FTPのバッチファイルを使いたいと思います。 元データの場所 PC-A\%systemroot%\system32\dhcp\test.log  ↓                        このデータを転送したい。 転送先(PC-B) /1G/1T/(ここにコピーしたい) 下のような構成を考えたのですが、うまくいかないので誤っている点をご指定いただけますでしょうか? バッチファイル内 ftp -s:copy_to_server.txt テキストファイル(copy_to_server.txt )内 open サーバー名 ユーザー名 パスワード put %systemroot%\system32\dhcp\test.log >> PC-B\1G\1T bye

  • windows10 FTP送信 バッチが動かない

    windows10からFTPサーバーへPUTしたいのですが、バッチファイルが動かないPCが存在します。 バッチファイル ftp -s:\\**********\b01.bat >\\**********\ftp.log b01.bat  open **********  **********  **********  PUT \\**********.TXT  QUIT 以下がログです。 ftp> open ********** ********** に接続しました。 220 (vsFTPd 2.2.2) 200 Always in UTF8 mode. ユーザー (**********:(none)): 331 Please specify the password. 230 Login successful. ftp> PUT \\**********.TXT 200 PORT command successful. Consider using PASV. 425 Failed to establish connection. ftp> QUIT 221 Goodbye. 色々調べた結果、パッシブモードではないからダメ・・・ しかしながら、別のwindows10では、問題なくPUT出来ています。 試しに、動作しないPCでコマンドラインで実行した結果は、 200 PORT command successful. Consider using PASV. ここまで上記と同様 150 Ok to send data. ftp: 300バイトが送信されました 0.29秒 1.05KB/秒 上記の通り問題なく送信できます。 windowsのFTPはパッシブモードはサポートしないならすべて出来ないなら理解できますが コマンドプロンプトでは実行できることが疑問、また、実行できる端末と出来ない端末があることも疑問です。 WinSCPに変更することも考えたのですが、windowsのバッチファイルを自動生成し実行後LOGに内容により他の処理を実行するところも作りこんでいて問題なく使用していた為、今更変更できない状況です。(パッシブモードの事さえ知らず動いていました) 何が何だかわからない状態です、お知恵をいただけないでしょうか・・・

  • windows bat ftpモード切替

    以下を実行すると、ftp -s:C:\update.txt でエラーになってしまいます。 SET PATH="C:\Program Files\MySQL\MySQL Server 5.0\bin" の部分をコメントすると、 ftp -s:C:\update.txt は正常に動作します。 どうしたら、解決しますか? <windows bat > ECHO ON REM MySQL PATH SET PATH="C:\Program Files\MySQL\MySQL Server 5.0\bin" REM CHARACTER set ECHO SET character SET sjis;>create_sql.sql %PATH%\mysql.exe -u root -proot test<create_sql.sql ftp -s:C:\update.txt <update.txt > open 接続先 ユーザID パスワード hash ascii put master.csv bye

  • ftpコマンドバッチファイルのリダイレクト結果

    以下のようなバッチファイルを作成しました ftp -s:ftpcmd.txt > ftplog.txt FIND /i "226 Transfer complete" ftplog.txt >NUL exit /b %ERRORLEVEL% ftpcmd.txt open hoge anonymous hoge prompt cd /xxxx/ put test.txt quit こうする事でftp送信が正常に終了したかどうかを exitの終了コードで判断しようとしていたのです バッチファイルを手動で動作させたところ成功です しかしこのバッチファイルを Webサーバのサーブレット(javaプログラム)から 動作させるとftplog.txtの出力結果がなぜか プログラムから実行した時のftplog.txt User (hoge:(none)): open hoge prompt cd /xxx/ put test.txt quit こんな結果になってしまうんです あれれ?ftpコマンドが出力するメッセージがリダイレクトされない んです 手動でこのバッチファイルを実行した時は 以下のようになります 226 Transfer complete. のメッセージがサーブレットからバッチファイルを実行しても ftplogファイルに出力されるように したいのですが 何かいい方法はないでしょうか? 手動実行した場合のftplog.txt ftp> Connected to hoge open hoge 220 Microsoft FTP Service User (hoge:(none)): 331 Anonymous access allowed, send identity (e-mail name) as password. 230 Anonymous user logged in. ftp> Interactive mode Off . ftp> prompt cd /xxx/ 250 CWD command successful. ftp> put test.txt 200 PORT command successful. 150 Opening ASCII mode data connection for test.txt. 226 Transfer complete. ftp: 59523 bytes sent in 0.00Seconds 59523000.00Kbytes/sec. ftp> quit 221

  • PEAR Net_FTP put利用方法

    いつもお世話になっております。 PHP PEAR Net_FTPを利用してファイルをputするサンプルプログラムを作ろうと 以下のようなサンプルを作りました。 <?php require_once("Net/FTP.php"); $ftp =& new Net_FTP(); var_dump($ftp->connect("ipaddress","21")); //var_dump($ftp->login("","")); //var_dump($ftp->setPassive()); //var_dump($ftp->cd("/")); //echo $ftp->pwd(); //echo "\r\n"; var_dump($ftp->put("/home/a/aaa.txt","aaa.txt",false,FTP_BINARY)); // 接続の切断 $ftp->disconnect(); ?> しかし、 File '/home/a/aaa.txt' could not be uploaded to '/aaa.txt' となってしまい、アップロードできません。 ネットのサンプルを見ると、connectの後、loginするのが通例なのですが、 今回のFTPサーバーは認証をつけていないので、その部分の処理を行いませんでした。 /home/a/aaa.txtファイルは存在し、 FTPサーバー側の権限設定も特になく、アクセスできる状態にあります。 ほかに cd("/") を行ってみたのですが、 Directory change failed というエラーになってしまいました。 pwd() も行ってみたのですが、 Could not determine the actual path. となってしまいました。 connectはtrueを返しているので、接続はできていると思うのですが、 何か不足している手順等があるのでしょうか。 環境は PHP Version => 5.2.12 FTPサーバーは IIS バージョン6.1(ビルド 7601 SP 1)です どなたかご教授よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • FTPのバッチファイル

    ローカルPCからサーバーのPCへ毎日決まったファイルをFTPで伝送したいと思っています。今はFFFTPで、毎日手動でファイルをアップロードしていますが、DOS窓からFTP接続するコマンドをバッチファイルにすることってできないのでしょうか? できれば、そのバッチファイルをタスクスケジューラーに登録して日々自動でアップロードしたいと考えています。 ftp open 接続先 ユーザーID パスワード put ファイル名 といった内容をバッチファイルにしたいのですが、やり方をご存知の方がいらっしゃいましたら、教えていただけないでしょうか?

  • 連続でpingを実行するバッチファイルがうまくいきません。

    連続でpingを実行するバッチファイルを作成してたんですが、うまくいきません。 実行すると、"プロセスはファイルにアクセスできません。別のプロセスが使用中です。"って表示されます。 日付と時間はテキストに記載されるんですが、pingの結果が記載されません。 バッチファイルの内容は以下の通りです。 @echo off echo -------------->>d:\result.txt echo PINGテスト結果>>d:\result.txt echo -------------->>d:\result.txt echo 実行年月日 >>d:\result.txt date /T>>d:\result.txt echo 実行時間 >>d:\result.txt time /T>>d:\result.txt for /L %%f in (1,1,254) do ping -n 4 -w 50 192.168.100.%%f>>d:\result.txt exit コマンドプロンプトで、 for /L %f in (1,1,254) do ping -n 4 -w 50 192.168.100.%f>>d:\result.txt と実行すると、pingの結果がテキストに記載されました。 よろしくお願いします。

  • ftpのgetが正常できる方法について

    約100Mバイトのログファイルの差分をとるため、下記のバッチファイルとteratermマクロを実行させました。 やり方は、差分をとりたい2つのログをfptにてサーバーへ転送し、サーバーでsdiffを実行し、差分結果をftpにてとってくるものです。 バッチファイル  echo open xx.xx.xx.xx > "%~dp0put.txt"  echo abcdef >> "%~dp0put.txt"  echo pwabe >> "%~dp0put.txt"  echo put log1 log1 >> "%~dp0put.txt"  echo put log2 10g2 >> "%~dp0put.txt"  echo quit >> "%~dp0put.txt"  ftp -s:"%~dp0put.txt"  del "%~dp0put.txt"  "c:\ProgramFiles\teraterm\ttpmacro.exe" "%~dp0sdiff.ttl"  cho open xx.xx.xx.xx > "%~dp0get.txt"  echo abcdef >> "%~dp0get.txt"  echo pwabc >> "%~dp0get.txt"  echo get kekka kekka >> "%~dp0get.txt"  echo del log1 >> "%~dp0get.txt"  echo del log2 >> "%~dp0get.txt"  echo quit >> "%~dp0get.txt"  ftp -s:"%~dp0get.txt"  del "%~dp0get.txt"  exit/b teraterm macro (sdiff.ttl)  connect'xx.xx.xx.xx.:xx/ssh/2/auth=/user=abcdef/passwd=pwabc'  wait'$'  sendln 'sdiff logl log2 > kekka'  sendln 'mv kekka kekka1'  sendln 'perl -pe "s/\n\r\n/"kekka1 > kekka'   wait'$'  sendln 'rm kekka'  sendln 'rm kekka1'  Sendln 'logout'  end ここから相談です。 ftpでgetしてきた差分は、ログの頭から3分の1程度しかなく、全ての差分をとることができませんでした。 調査したところ、サーバー側はログ全ての差分を取れていることを確認しました。 なぜ、ftpで作業結果をgetすると、3分の1しかないのか原因がわからないまま、試行錯誤で対処方法を見つけたのが次の方法です。 方法1(teraterm macroの変更1)  次のようにwait'$'を追加する。  sendln 'sdiff logl log2 > kekka'  wait'$'  sendln 'mv kekka kekka1'  wait'$'  sendln 'perl -pe "s/\n\r\n/"kekka1 > kekka' 方法2(teraterm macroの変更2)  次のように20秒のpauseをとる。  sendln 'sdiff logl log2 > kekka'  pause 20  sendln 'mv kekka kekka1' 方法1も方法2もタイミングを取るような方法ですが、このやり方で、なぜftpでgetした差分結果が正常(ログすべての差分が取れている)になるのかがわかりません。本当にこの対処でよいか判断できません。 どなたか上記方法でよい理由がお解りでしたら、教えてください。