Skip to content

Instantly share code, notes, and snippets.

@tAkihiko
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tAkihiko/b8c3430e7ce0d9f55a67 to your computer and use it in GitHub Desktop.
Save tAkihiko/b8c3430e7ce0d9f55a67 to your computer and use it in GitHub Desktop.
ドラッグアンドドロップでファイル名に更新日付を加えてバックアップフォルダに格納するBatファイル。バックアップフォルダ自動作成機能付き。バックアップフォルダにログファイルがあればログを残して、なければログ無し。
@echo off
setlocal EnableDelayedExpansion
pushd %~dp0
REM 出力先
set outdir=_backup
set log_file=_log.txt
REM バックアップ日時
set bk_date=%DATE:~0,10%
::set bk_date=%bk_date:/=%
set bk_time=%TIME: =0%
set bk_time=%bk_time:~0,5%
::set bk_time=%bk_time::=%
if not exist %outdir%\nul mkdir %outdir%
if exist %outdir%\%log_file% (
set /p log="変更ログ: "
echo %bk_date% %bk_time%>>%outdir%\%log_file%
if not #!log!# == ## (
echo !log!>>%outdir%\%log_file%
)
)
:loop
if #%1# == ## goto break
call :Backup "%~1"
shift
goto loop
:break
if exist %outdir%\%log_file% (
echo.>>%outdir%\%log_file%
)
exit
:Backup
REM ファイル更新日時
set upd_datetime=%~t1
set upd_date=%upd_datetime:~0,10%
set upd_date=%upd_date:/=%
set upd_time=%upd_datetime:~11,5%
set upd_time=%upd_time::=%
set target=%outdir%\"%~n1_%upd_date%_%upd_time%%~x1"
if exist %1\ (
::xcopy /i /e /Y %1 %target%
7za a %target%.zip %1
) else (
copy /Y %1 %target%
)
if exist %outdir%\%log_file% (
echo %target%>>%outdir%\%log_file%
)
exit /b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment