Windows バッチファイル メモ

Windows のバッチファイルについて、こまごまメモ。

FTP通信

FTP通信用のテキストファイルを、以下のような形式で作成する。

open ホスト名
ユーザ
パスワード
cd、put、get などのFTP コマンド
quit

以下のようなコマンドで使用する。

ftp -i -s:FTP通信用のテキストファイルのパス

※ put、get などでローカルファイルのパスを相対パスで記述する場合は、ftp コマンド実行時のカレントパスを基準として書く(FTP通信用のテキストファイルのパスは関係ない)。

zipファイル作成

ZIP.VBS をダウンロード・展開し、MakeZIP.VBS を以下のように修正する。

以下のようなコマンドで使用する。

CScript.exe MakeZIP.VBS 作成する圧縮ファイル名 圧縮対象フォルダ1 圧縮対象ファイル2 ...

現在日付を YYYYMMDD 形式で取得

%date% で「yyyy/MM/dd」形式の現在日付を取れるので…

  • 方法1:数値だけ抜き出して連結する方法 … %date:~0,4%%date:~5,2%%date:~8,2%
  • 方法2:「/」を空文字に置換する方法 … %date:/=%

のいずれかで取得できる。

ファイルの世代管理

○世代より前のファイルを削除する…みたいな処理を行いたい場合。

ファイル名の降順で上から5つ目まではスキップし、それ以外のものを削除する(ログに日時が含まれている場合に使用)場合のサンプル:

  • ファイル名ではなく更新日の降順にしたい場合、/o-n の部分を /o-d /tw に変更する。
  • ファイルではなくフォルダに対して処理を行いたい場合、/a-d の部分を /ad に変更し、del /q %%a の次の行に rmdir %%a を追加する。
  • fordirdel の詳細については for /? 等で見られるヘルプを参照。