- ベストアンサー
ファイル転送のための最新更新履歴の送付方法
- Windows上で生成したファイルを定期的にLINUXサーバーに転送する際、最新の更新履歴のファイルだけを送付する方法について教えてください。
- 現在は、タスクスケジューラーに登録したバッチファイルで、全てのデータを送付してしまっています。
- 1分ごとに新しいファイルが生成されるので、最新の更新履歴のファイルだけを送付する方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
簡単にやるなら c:\hpdata\old_data のようにフォルダを作成しておき サーバに送った後のファイルを moveして退避しておくという手もあります ftp -s:ftpcmd.txt move *.csv 作成したフォルダのパス を記述という感じで
その他の回答 (4)
- masatsan
- ベストアンサー率15% (179/1159)
最新の意味が私と違うと思うのです。 最新というのは10年前でも更新されていなければ最新ですよね。 だから更新が1分前からされているかを管理しなければどうしようもないと思います。
お礼
ありがとうございます。 PHPの場合、更新されたタイムスタンプを見に行ってくれるため それが10分前でもまたは何年前であっても、「ディレクトリの中の 最新のもの」を抽出することが可能です。 今回の件については私がwindowsの関数を知らないだけと思っていました。 やはり、PHPのような都合のいい関数はなさそうですね。 freetaka さんからご提案のあったディレクトリへの移動という形で 対応したいと思います。 どうもありがとうございました。
- freetaka
- ベストアンサー率53% (106/197)
こちらでテストした時のipのままなので ip部分は修正して使用してみてください
- freetaka
- ベストアンサー率53% (106/197)
こんな感じで dirコマンドの内容からひろった情報を利用して ftpcmd.txtファイルを生成しftpコマンドで利用なら なんとかいけそうですがどうでしょう set wfile=ftpcmd.txt for /F "tokens=1* delims=" %%s in ('dir /b /O:D c:\hpdata\*.csv') do set fname=%%s echo open 192.168.0.1 > %wfile% echo manage >> %wfile% echo manage >> %wfile% echo put c:\hpdata\%fname% >> %wfile% ftp -s:%wfile%
お礼
ありがとうございます。 さっそく、下記のように試してみたのですがなぜかうまくいきませんでした。 set wfile=ftpcmd20.txt for /F "tokens=1* delims=" %%s in ('dir /b /O:D c:\hpdata\*.jpg') do set fname=%%s echo open 192.168.100.105 user pass > %wfile% echo manage >> %wfile% echo manage >> %wfile% echo put c:\hpdata\%fname% >> %wfile% ftp -s:%wfile% やはり、PHPのような都合のいい関数はなさそうですね。 freetaka さんからご提案のあったディレクトリへの移動という形で 対応したいと思います。 どうもありがとうございました。
- masatsan
- ベストアンサー率15% (179/1159)
当たり前ですが最新であることをどこかに記録しなければだめですよね。 10年前の物が最新かもしれなし、10秒前の物が最新かもしれないし。
お礼
ありがとうございます。 PHPだと、execで下記のようにディレクトリの中の最新のものを拾うことが可能です。 同じような関数はやはりないのでしょうか? <?php exec ('dir /b /o-d img\*.jpg', $output); print "<img src=./img/$output[0]>"; ?>
お礼
ありがとうございます。 PHPだと、execで下記のようにディレクトリの中の最新のものを拾うことが可能です。 同じような関数はやはりないのでしょうか? <?php exec ('dir /b /o-d img\*.jpg', $output); print "<img src=./img/$output[0]>"; ?>