batファイル,もしくはWSHファイルを使用してのFTPサーバからのファイルダウンロードを行う際の記述方法について質問致します。
行いたいことはFTPサーバ側に日毎のディレクトリが作成され
その中に格納されるテキストファイルを自動でローカルの指定ディレクトリに上書きする手順になります。
WSHに関しては全くの素人なので非常に苦戦しております…
FTPサーバ側
/@day/*.txt
@dayには本日の日付が2桁で入ります。
1月1日なら01、2月23日なら23
Local保存側
D:\temp
お手すきの時にでもご教授頂ければ幸いです。
No.1ベストアンサー
- 回答日時:
FTPコマンドには詳しくないのですがWSHはわかります。
手順はこんな感じでしょうか。(1)FTPコマンドを記述したファイルのテンプレートを作成しておく。
(2)WSHでテンプレートから本日のFTPのためのファイルを作成する。
(3)WSHでFTP -s:ファイル名 ホスト名 を実行する。
そこで(2)の方法ですけれども、例えばFTPコマンドを記述したファイルが C:\FTPtemplate.txt にあり、その中に本日の日付にしたい文字 @day が埋め込んであるものとします。@day を本日の日付2桁に書き換えて C:\FTPtoday.txt を作成するWSH JScriptは下記になります。
// FTPreplace.js
var Ifile="C:\\FTPtemplate.txt";
var Ofile="C:\\FTPtoday.txt";
var Fs =WScript.CreateObject("Scripting.FileSystemObject");
var ForReading=1, ForWriting=2;
var Itxt, Otxt, Iall, Oall, dd, re;
Itxt=Fs.OpenTextFile(Ifile, ForReading);
Iall=Itxt.ReadAll();
Itxt.Close();
dd=(new Date()).getDate().toString(10); if (day.length==1) day="0"+day;
re=/@day/gm;
Oall=Iall.replace(re, dd); // 全ての@dayを今日のddに置き換える
Otxt=Fs.OpenTextFile(Ofile, ForWriting, true); // 上書き
Otxt.Write(Oall);
Otxt.Close();
// ここまで
あとはWSHのRunメソッドでFTPコマンドを実行すればよいと思います。
http://msdn.microsoft.com/library/ja/default.asp …
No.2
- 回答日時:
ANo.1のコードの変数名に迷いがありました。
すみません。dd=(new Date()).getDate().toString(10); if (day.length==1) day="0"+day;
↓
dd=(new Date()).getDate().toString(10); if (dd.length==1) dd="0"+dd;
上記のとおり書き換えたらとりあえず動きましたー
ものすごい低スキルなもんんで下記のようなbatで動かしてたんですが
SHIMAPEE様の書かれたコードの方がスマートですよね・・
del D:\WSHJOB\ftptempdata.txt
set dt=%date%
set dd=%dt:~-2%
echo open ###.###.###.###>> D:\WSHJOB\ftptempdata.txt
echo ID>> D:\WSHJOB\ftptempdata.txt
echo PW>> D:\WSHJOB\ftptempdata.txt
echo ascii>> D:\WSHJOB\ftptempdata.txt
echo lcd D:\textdata>> D:\WSHJOB\ftptempdata.txt
echo prompt off>> D:\WSHJOB\ftptempdata.txt
echo mget /%dd%/*.txt>> D:\WSHJOB\ftptempdata.txt
echo bye>> D:\WSHJOB\ftptempdata.txt
ftp -s:D:\WSHJOB\ftptempdata.txt
del D:\WSHJOB\ftptempdata.txt
これを機にWSHの勉強を始めてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- サーバー Googleドライブなどを使わずにテザリングAndroidでWindowsとファイル共有 1 2023/02/19 13:14
- UNIX・Linux Linuxについて質問です。 シェルスクリプト名をfind.shとして、以下の条件をすべて満たすファ 1 2023/02/03 03:50
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンに詳しい方教えて下さ...
-
jarファイルが開けない
-
ダンプツールとは?
-
複数のテキストファイルの特定...
-
指定ファイルをFTPで自動アップ...
-
システムファイルと工場出荷状態
-
バッチファイルでディレクトリ...
-
xcopyの/dオプションについて
-
sftp時の公開鍵認証
-
WSHファイルからFTPを利用して...
-
エクセル 共有ファイル 削除
-
Windows上のファイル操作の履歴...
-
dnsレジストラ登録名と自ホスト...
-
みんなはスマホのクリーンアプ...
-
別のフォルダにファイルを移動...
-
TCP/IP のパケットの分断と結合...
-
VC++ 2010 メッセージが文字化...
-
ネットワークでの受信バイト数
-
UDP受信時の通信異常検知について
-
iTunesのパソコン移動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンに詳しい方教えて下さ...
-
バッチファイルでディレクトリ...
-
Windows上のファイル操作の履歴...
-
ipadで社内ネットワークに接続
-
別のフォルダにファイルを移動...
-
Zipファイルをエクセルに指定変...
-
jarファイルが開けない
-
複数のテキストファイルの特定...
-
Windowsのファイルコピーについて
-
CSVファイルのマッピング処理の...
-
cronからtarで圧縮しようとする...
-
グローバルIPアドレスを取得し...
-
Win7のPCのサーバー内のファイ...
-
postfixの.forwardでメールの転...
-
SystemWalker Centric Manager...
-
Batファイルでhostsを追加したい
-
Lhaplusが発したと、みられるエ...
-
アプリケーションが見つかりません
-
指定ファイルをFTPで自動アップ...
-
フォルダへのコピー時に重複に...
おすすめ情報