LoginSignup
0
0

More than 5 years have passed since last update.

bat_バックアップ用バッチ(タイムスタンプ付き)

Last updated at Posted at 2019-01-04

1.概要

ファイルをバックアップするバッチファイル
ファイル名の後ろに日付時刻(秒まで)のタイムスタンプが付加される。
※バッチファイルの作成は初なので素人構文です。

2.ソースコード

rem タイムスタンプ付きバックアップ用プログラムです。
::1.バックアップしたいファイルの直下にでのみ動作します。
::2.myFileNameにバックアップしたいファイル名(相対パス)を設定してください。
::コピーの際はファイル名に秒までのタイムスタンプが付加されます。
::3.BuckUpDirにバックアップ先のディレクトリ名を設定してください。
:: (存在しなければ作成されます。"にすると直下にバックアップされます")
::【備忘録】「date」や「time」の変数を使用する。ただし、ファイル名に使えない「/」が入っているため、文字抽出を行う」
:: 環境変数として参照する場合はそれぞれ「%date%」「%time%」

@echo off

::☆☆☆☆このファイル名を変更してください☆☆☆☆☆
set myFileName=test.txt
set BuckUpDir=BuckUp\
::☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆


:: batのフォルダをカレントにする
cd /d %~dp0

::今日の日付を取得
set date2=%date%

::date2から数字を抽出。「%date2:~0,4%」はdate2の1文字目以降から4文字を抽出する。
set date3=%date2:~0,4%%date2:~5,2%%date2:~8,2%

::timeから空白文字を0に置換
set time2=%time: =0%

::time2から秒までの数字を抽出
set time3=%time2:~0,2%%time2:~3,2%%time2:~6,2%

echo %time2%

call :GET_FILENAME %myFileName%
call :GET_FILEEXTEND %myFileName%

::タイムスタンプ用の文字列作成
set timestamp=%BuckUpDir%%GET_FILENAME_BUF%_%date3%_%time3%%GET_FILEEXTEND_BUF%

::Xコピーで実行。モードはファイル"F"。
echo F | XCOPY %myFileName% %timestamp%

::pause -> nul

::------------関数-------------------------
::ここから下の関数は実行後、「関数名_BUF」に値を代入する
::メインで実行後、バッファを使用すること


::拡張子を除いたファイル名を取得
:GET_FILENAME
set GET_FILENAME_BUF=%~n1
exit /b 0

::拡張子を取得
:GET_FILEEXTEND
set GET_FILEEXTEND_BUF=%~x1
exit /b 0
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0