Windows のバッチファイルについて、こまごまメモ。
FTP通信
FTP通信用のテキストファイルを、以下のような形式で作成する。
open ホスト名 ユーザ パスワード cd、put、get などのFTP コマンド quit
以下のようなコマンドで使用する。
ftp -i -s:FTP通信用のテキストファイルのパス
※ put、get などでローカルファイルのパスを相対パスで記述する場合は、ftp コマンド実行時のカレントパスを基準として書く(FTP通信用のテキストファイルのパスは関係ない)。
zipファイル作成
ZIP.VBS をダウンロード・展開し、MakeZIP.VBS を以下のように修正する。
36 |
Set sFolderItem=Shell.NameSpace(fso.GetAbsolutePathName(Path)&"\..\").ParseName(FileName) |
↓
36 |
Set sFolderItem=Shell.NameSpace(fso.GetAbsolutePathName(fso.GetParentFolderName(Path))).ParseName(FileName) |
以下のようなコマンドで使用する。
CScript.exe MakeZIP.VBS 作成する圧縮ファイル名 圧縮対象フォルダ1 圧縮対象ファイル2 ...
現在日付を YYYYMMDD 形式で取得
%date% で「yyyy/MM/dd」形式の現在日付を取れるので…
- 方法1:数値だけ抜き出して連結する方法 … %date:~0,4%%date:~5,2%%date:~8,2%
- 方法2:「/」を空文字に置換する方法 … %date:/=%
のいずれかで取得できる。
ファイルの世代管理
○世代より前のファイルを削除する…みたいな処理を行いたい場合。
ファイル名の降順で上から5つ目まではスキップし、それ以外のものを削除する(ログに日時が含まれている場合に使用)場合のサンプル:
1 2 3 4 |
SET LIMIT=5 for /f "skip=%LIMIT%" %%a in ('dir /a-d /b /o-n') do ( del /q %%a ) |
- ファイル名ではなく更新日の降順にしたい場合、 /o-n の部分を /o-d /tw に変更する。
- ファイルではなくフォルダに対して処理を行いたい場合、 /a-d の部分を /ad に変更し、 del /q %%a の次の行に rmdir %%a を追加する。
- for、 dir、 del の詳細については for /? 等で見られるヘルプを参照。