バッチファイルを活用して日々の業務を自動化する:日付を付けてファイルを整理・管理

プログラミング

はじめに

ファイル管理の日常業務では、定期的に特定のファイルをバックアップしたり、コピーして保存場所を変更する必要があるかもしれません。しかし、毎回手動で行うのは時間がかかり、効率も良くありません。そこで、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での作業効率を上げるために、ぜひこのスクリプトをお試しください。

コメント

タイトルとURLをコピーしました