【バッチ】日付+カレントディレクトリ名で格納ディレクトリを作成するバッチ

その日こなした担務(業務)、メールで受信したさまざまな資料等は日付ディレクトリ(yyyymmdd)で保存管理していたのだが、どうも日付だけがキーワードだと、後で資料を探のが大変だった。なにか手軽にできる方法がないか、システム化できないかと考え思いついた方法(仕様)がこれ。

【仕様】

① 担務単位で日付ディレクトリをつくる。

② ①の中に「日付+担務単位のキーワード(またその逆)」でディレクトリを作成し管理する。

※利点としては、②で作成するディレクトリは、”日付と担務単為のキーワード”を持っているのでディレクトリユニークになる(=他とぶつからない)。

※のちのち担務単位から日付単位に管理方法を変更(ディレクトリのマージ)をしても、ディレクトリユニークなため、あとでわかりやすい。

そしてシステム化した部分がこれ、②用に作成した。

【日付+カレントディレクトリ名で格納ディレクトリを作成するバッチ】

echo off
rem バッチの格納されているカレントディレクトリ名を取得
for %%I in (.) do set DIRNAME=%%~nI%%~xI
rem 今日の日付(yyyymmdd)を取得
for /f "tokens=1-3 delims=/ " %%I in (‘date /t’) do set TODAY=%%I%%J%%K

rem ディレクトリ作成(パターン1:日付_カレントディレクトリ名)
mkdir %TODAY%_%DIRNAME%
rem ディレクトリ作成(パターン2:カレントディレクトリ名_日付)
mkdir %DIRNAME%_%TODAY%

「担務単位のキーワード」は「カレントディレクトリ名」とすればユニークになるだろうって考えてみた。

ディレクトリの作成パターンも二つ考えたけど、実用的なのはパターン1(日付_カレントディレクトリ名)かな。

以下制限事項

制限事項1:(C:\)等のルートディレクトリでは、カレントディレクトリ名は取得できない。

制限事項2:サーバー上で使う場合、UNCパス(\\serverみたいなパス)からは動かない、ネットワークドライブ越しで使う。

コメント

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