はじめに
ファイル管理の日常業務では、定期的に特定のファイルをバックアップしたり、コピーして保存場所を変更する必要があるかもしれません。しかし、毎回手動で行うのは時間がかかり、効率も良くありません。そこで、Windowsのバッチファイルを活用して、これらの作業を自動化する方法を紹介します。特に、ファイル名に実行日の日付を追加する方法を詳しく解説します。これは、ファイルのバージョン管理や識別を容易にするのに役立ちます。
バッチファイルとは?
バッチファイル(.bat)は、一連のコマンドをテキストファイルに記述し、それを一度に実行できるスクリプトファイルです。Windows OSでは、これを利用して様々な自動化タスクを簡単に実装できます。
日付をファイル名に追加するバッチファイルの作成方法
必要なツール
テキストエディタ(メモ帳など)
Windows OS
ステップバイステップガイド
バッチファイルの基本構成を理解する
最初に、@echo offでコマンドの実行結果を非表示に設定します。次に、setlocal enabledelayedexpansionを使って、遅延環境変数の展開を有効にします。
現在の日付を取得
wmic os get localdatetime /value コマンドを使用して、システムのローカル日時を取得し、その値を変数に格納します。
コピーするファイルとターゲットディレクトリを設定
相対パスを使用して、コピー元のファイルとコピー先のディレクトリを指定します。
ターゲットディレクトリの存在チェックと作成
指定したディレクトリが存在しない場合には、新たに作成します。
ファイルのコピーとリネーム
コピー元のファイルを、日付が先頭に付加されたファイル名でターゲットディレクトリにコピーします。
batのサンプルコード
Copy code
@echo off
setlocal enabledelayedexpansion
REM 現在の日付をyyyymmdd形式で取得
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set datetime=%%I
set "datestamp=%datetime:~0,8%"
REM ファイルとターゲットディレクトリの定義
set "source=./test.txt"
set "targetDir=./bac/"
REM ターゲットディレクトリが存在しなければ作成
if not exist "%targetDir%" mkdir "%targetDir%"
REM ファイル名から拡張子を含む名前を抽出し、コピー実行
for %%A in ("%source%") do set "filename=%%~nxA"
copy "%source%" "%targetDir%%datestamp%%filename%"
endlocal
テスト
実際にテストしてみます。
テキストを作成します。Windowsキー + R
ファイル名を指定して実行で、「notepad」を入力してEnter
メモ帳が開くので、上記サンプルをコピー&ペースト > 保存
デスクトップに保存します。名前は「test.bat」にします。txtの部分をbatに変更してください。
batファイルを作成できたので、次はコピー元のtest.txtを作成します。
この状態で、「test.bat」をダブルクリックすると、bacフォルダが作成され、フォルダの中に「今日の日付test.txt」が作成されます。
まとめ
このガイドでは、バッチファイルを使ってファイルの自動コピーと日付の追加を実行する方法を紹介しました。この技術を活用すれば、ファイルのバックアップや管理が格段に楽になります。Windowsでの作業効率を上げるために、ぜひこのスクリプトをお試しください。
コメント