2015年7月 3日 (金)意外と便利なバッチのご紹介
おはようございます。本日の当番、プログラマーのY.Nです。
開発中はいろんな資料を作成するのですが、その更新管理を行う手法の一つに
ファイル名に日付などを付加して変更管理する方法があります。
※偉そうに言ってますが、単純に日付管理ってことです。
ただ、こういった運用を行った際に発生する問題点として、数字の打ち間違えや、一部の文字が全角だったりすることがあるんです。
これって簡単に改善できるよね~っと思うんだけど、
ただ、こういった運用を行った際に発生する問題点として、数字の打ち間違えや、一部の文字が全角だったりすることがあるんです。
これって簡単に改善できるよね~っと思うんだけど、
そのためにわざわざプログラム書くのもなんだかな~って思った時に登場するのが
バッチなんです。(笑)
意外と便利で、ファイルの検索や、ミラーリング、
中身のデータをコンバートするなどいろんな事が出来ちゃう!!そんな便利なバッチの作り方の一例をご紹介します。
↓↓ここから
バッチなんです。(笑)
意外と便利で、ファイルの検索や、ミラーリング、
中身のデータをコンバートするなどいろんな事が出来ちゃう!!そんな便利なバッチの作り方の一例をご紹介します。
↓↓ここから
: ---------------------------------------------------------------
rem ファイル名の後ろに"_yyyymmddhhmm"を付加します
set YYYYMMDD=%date%
: %date%は日付を取得するための環境変数です。
: 内部的には「yyyy/mm/dd」の形で格納されてます。
: ----------------------------------------------
: 文字を切り取り、必要な情報を取得する方法
: ----------------------------------------------
: 「yyyy/mm/dd」の1文字目から4文字分取得してます。
set YYYY=%date:~0,4%
: 「yyyy/mm/dd」の6文字目から2文字分取得してます。
set MM=%date:~5,2%
: 「yyyy/mm/dd」の9文字目から2文字分取得してます。
set DD=%date:~8,2%
: 他にも以下のような書き方もできます。
: ----------------------------------------------
: 特定の文字を削除する方法
: ----------------------------------------------
set YYYYMMDD=%data:/=%
: ----------------------------------------------
: 区切り文字を指定してブロック単位で取得する方法
: ----------------------------------------------
For /F "eol=;tokens=1,2,3*delims=/, " %%i in ('date /t') DO SET YYYYMMDD=%%i%%j%%k
: 時間も同様に取得できます。
: 取得する際は%time%
set HHMMSSmm=%time::=%
set HHMMSSmm=%HHMMSSmm:.=%
: D&Dされたファイル情報を取得する
set FILE=%1
set FILENAME=%~n1
set FILEXTE=%~x1
: ファイル名に日付情報を付加してファイルコピーします。
echo F | xcopy /I /Y %FILENAME%%FILEXTE% %FILENAME%_%YYYYMMDD%%FILEXTE%
: 一時停止してます。
pause
: ---------------------------------------------------------------
rem ファイル名の後ろに"_yyyymmddhhmm"を付加します
set YYYYMMDD=%date%
: %date%は日付を取得するための環境変数です。
: 内部的には「yyyy/mm/dd」の形で格納されてます。
: ----------------------------------------------
: 文字を切り取り、必要な情報を取得する方法
: ----------------------------------------------
: 「yyyy/mm/dd」の1文字目から4文字分取得してます。
set YYYY=%date:~0,4%
: 「yyyy/mm/dd」の6文字目から2文字分取得してます。
set MM=%date:~5,2%
: 「yyyy/mm/dd」の9文字目から2文字分取得してます。
set DD=%date:~8,2%
: 他にも以下のような書き方もできます。
: ----------------------------------------------
: 特定の文字を削除する方法
: ----------------------------------------------
set YYYYMMDD=%data:/=%
: ----------------------------------------------
: 区切り文字を指定してブロック単位で取得する方法
: ----------------------------------------------
For /F "eol=;tokens=1,2,3*delims=/, " %%i in ('date /t') DO SET YYYYMMDD=%%i%%j%%k
: 時間も同様に取得できます。
: 取得する際は%time%
set HHMMSSmm=%time::=%
set HHMMSSmm=%HHMMSSmm:.=%
: D&Dされたファイル情報を取得する
set FILE=%1
set FILENAME=%~n1
set FILEXTE=%~x1
: ファイル名に日付情報を付加してファイルコピーします。
echo F | xcopy /I /Y %FILENAME%%FILEXTE% %FILENAME%_%YYYYMMDD%%FILEXTE%
: 一時停止してます。
pause
: ---------------------------------------------------------------
↑ここまで
このコードを"hoge.bat"などのファイル名で保存し、
なんでもいいので適当なファイルをD&Dしてもらえたら同じ場所に
日付が付加されたファイルが出来ます。
ファイルをリネームしてるだけなので、いろいろ試してみると面白いかも
それでは さようなら
このコードを"hoge.bat"などのファイル名で保存し、
なんでもいいので適当なファイルをD&Dしてもらえたら同じ場所に
日付が付加されたファイルが出来ます。
ファイルをリネームしてるだけなので、いろいろ試してみると面白いかも

それでは さようなら
| 固定リンク | コメント (0) | トラックバック (0)
「プログラマー」カテゴリの記事
- 技術交流の業(2019.03.07)
- 福袋争奪戦デビュー(2019.01.31)
- 温泉旅行(2019.01.24)
- ゲーセンの近況(2018.11.29)
- 健康的にプログラミングを続けるためのちょっとした習慣(2018.10.18)
この記事へのコメントは終了しました。
コメント