OSはWindoswXPProです。
以下のようなBATファイルとバッチファイルを作成しました。
---FTP.bat---
echo off
ftp -s:get.ftp
---get.ftp---
open 10.0.X.X
username
password
cd /log
get log.yymmdd(実際には日付) c:\access_all_log.txt
quit
logというディレクトリには日次でログファイルが作成され
ファイル名としてlog.yymmddと名づけられています。
やりたいことは2つあります。
1つめはftpするファイル名の日付部分をコマンドなどから
範囲指定して取得するファイルを指定できないか。
(たとえば070301~070315のファイルを一括で取得したい)
2つ目はftpでのファイル取得終了後に続いて
バッチスクリプトを流したいのですが、その方法。
お分かりになる方いらっしゃいましたらよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
バッチで日付を扱うのはけっこう難しいですよね。
VBSで、
・指定した期間内のログファイルをftpでgetするftp.getファイルを生成し、
・getした複数のログファイルを copy で1つのファイル(c:\access_all_log.txt)にまとめ、個々のログファイル(log.yymmdd)を削除するバッチファイルを生成
するスクリプトを作ってみました。
まず、MakeGetFtp.vbs という名前で、以下の内容のファイルをバッチファイルと同じディレクトリに作成してください。(IPアドレス、ユーザ名等は本当のものに書き換えてください)
----------------------------------------------
Dim strDate(2)
Dim argDate(2)
Dim TmpDate,d, i,logfile
Dim FSO,FtpFile,CopyBat
Dim GetStr,CopyStr,DelStr
'引数の数チェック
If WScript.Arguments.Count <> 2 Then
WScript.Echo("開始日付と終了日付を指定してください")
WScript.Quit(1)
End If
'各スクリプト、バッチファイルに渡す日付パラメータの作成
For i = 1 to 2
strDate(i) = Wscript.Arguments.Item(i - 1)
If Not IsNumeric(strDate(i)) or _
Len(strDate(i)) <> 6 Then
WScript.Echo(CStr(i) & "番目の日付の書式が間違っています。")
WScript.Quit(1)
End If
argDate(i) = DateValue("20" & Left(strDate(i),2) & "/" & _
Mid(strDate(i),3,2) & "/" & Right(strDate(i),2))
Next
'初期化
CopyStr = "Copy "
DelStr = "Del "
'FTPのgetコマンド、BATのCOPYコマンド、DELコマンドを作成
For d = argDate(1) to argDate(2)
TmpDate = FormatDateTime(d,2)
TmpDate = Mid(TmpDate,3,2) & Mid(TmpDate,6,2) & Mid(TmpDate,9,2)
logfile = "log." & TmpDate
GetStr = GetStr & "get " & logfile & vbCrlf
CopyStr = CopyStr & logfile & "+"
DelStr = DelStr & logfile & " "
Next
'FTPコマンドをファイルに出力
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.CreateTextFile("get.ftp")
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.CreateTextFile("get.ftp")
.WriteLine("open 10.0.X.X")
.WriteLine("username")
.WriteLine("password")
.WriteLine("cd /log")
.WriteLine(GetStr)
.WriteLine("quit")
.Close
End With
CopyStr = Left(CopyStr,Len(CopyStr)-1) & " c:\access_all_log.txt"
With FSO.CreateTextFile("TmpCopy.bat")
.WriteLine("@echo off")
.WriteLine(CopyStr)
.WriteLine(DelStr)
.Close
End With
Set FSO = Nothing
----------------------------------------------
そして、FTPを行うバッチファイルを以下の内容にしてください。
----------------------------------------------
@echo off
cscript MakeGetFtp.vbs %1 %2
if %errorlevel% EQU 1 goto end
ftp -s:get.ftp
TmpCopy.bat
:end
----------------------------------------------
上記のバッチファイルの名前を、ftpget.bat とすると、
ftpget.bat 070301 070315
と日付を指定して実行すると、その期間のログをFTPでgetし、c:\access_all_log.txt にまとめられます。
No.3
- 回答日時:
No.2です。
すみません、誤記がありました。MakeGetFtp.vbs の中で、
'FTPコマンドをファイルに出力
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.CreateTextFile("get.ftp")
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.CreateTextFile("get.ftp")
と同じ2行が繰り返されていますが、これは
'FTPコマンドをファイルに出力
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.CreateTextFile("get.ftp")
と1つだけの誤りでした。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) batファイルでPCの設定内容やプロパティーを取得したいのですが、コマンド1個で1ファイルとなるのを 2 2022/04/27 15:27
- その他(プログラミング・Web制作) バッチファイルでPCのモデル名を取得したい 1 2022/03/31 10:58
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- PHP ファイルアップロードに関してのセキュリティについてアドバイスお願い致します 1 2023/08/20 00:25
- サーバー Googleドライブなどを使わずにテザリングAndroidでWindowsとファイル共有 1 2023/02/19 13:14
- プロバイダー・ISP hpb22の接続方法の変更 1 2023/08/06 18:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- サーバー FFFTPで特定サイトだけUploadできない 4 2022/08/27 14:53
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- サーバー ECサイトのFTPサーバーに使わないファイル20GBくらいがあるのですが、削除したら表示速度やページ 2 2022/12/20 08:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTP SJIS 能など(2バイト目5C)...
-
FFFTPで属性変更できない(Fedr...
-
ZIPファイルのアップロード方法...
-
バッチファイルでフォルダ内の...
-
win2008serverでaspxを表示させ...
-
作成したホームページが公開で...
-
win10にインストールしたOpera...
-
閲覧したwebページの画像が自動...
-
SONY ICカードリーダー RC-S330...
-
ps5のレストモードについて 新...
-
サポートされてないファイル形...
-
俺アラをノーパソでプレイした...
-
.recファイルを.mp4に変換する方法
-
EXCEL、上書き保存したは...
-
現在のfallout4におけるMOD導入...
-
ダウンロードしたファイルの出...
-
複数同時にダウンロード
-
著作権法違反
-
ファイルダウンロードを途中で...
-
Surface pro x Surface pro x ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPに接続し、 あるフォルダ内...
-
robocopyでファイルがあるのに...
-
ファイルの作成・更新日時が200...
-
FTPで見えるファイルと見えない...
-
ApacheでSorryサーバを作りたい
-
私はマクロソフトのOneDrive(...
-
index.html をブラウザで開...
-
FTP受信直後に受け取ったファイ...
-
バッチファイルでフォルダ内の...
-
シェルでftp接続によるファイル...
-
Apache2.2.6にてBasic認証の設定
-
rsyncでバックアップしたLinux...
-
読み取り専用ファイルとして認...
-
バッチファイルにてFTPで指定し...
-
FFFTP アップロードできない
-
FTP SJIS 能など(2バイト目5C)...
-
FTPのmputで出るnetoutについて
-
win2008serverでaspxを表示させ...
-
Telnetのマニュアル作業を自動...
-
FTPのアスキーモードってバイナ...
おすすめ情報