本部長は管理ができない

Salesforceに関わっているエンジニアの技術メモ。ときどきそれ以外。

ちょっとしたバッチ

f:id:gren_dken:20140307221544j:plain
すた丼。
※本文とまったく関係ありません。



作業中に使っているファイルやフォルダに関するバッチ。
Windows用。
バッチファイルにD&Dして使っている。


現在日時のフォルダを作成
@echo off

rem 日付と時刻の取得
set currentDate=%DATE:/=%
set currentTime=%TIME::=%
set currentTime=%currentTime: =0%
set currentTime=%currentTime:~0,6%

mkdir "%~1\%currentDate%_%currentTime%"


今日日付に連番を付与したフォルダを作成
@echo off

set /A dirNo=0
set MAX_DIR_NO=9

set basePath=%~1\%DATE:/=%

:LOOP_START

rem フォルダ名生成
if %dirNo% equ 0 (
    set dirPath="%basePath%"
) else (
    set dirPath="%basePath%_0%dirNo%"
)

rem フォルダがなければ作成
if not exist %dirPath% (
    mkdir %dirPath%
    goto LOOP_END
)

rem インクリメント
if %dirNo%==%MAX_DIR_NO% (goto LOOP_END)
set /A dirNo=dirNo+1
goto LOOP_START

:LOOP_END


ファイルに現在日時を付与してコピー

複数ファイルにも対応。
「copy」を「move」にすればリネームになる。

@echo off

rem 日付と時刻の取得
set currentDate=%DATE:/=%
set currentTime=%TIME::=%
set currentTime=%currentTime: =0%
set currentTime=%currentTime:~0,6%

for %%i in (%*) do (
    copy "%%~i" "%%~dpni_%currentDate%_%currentTime%%%~xi"
)


フォルダに現在日時を付与してコピー
@echo off

rem 日付と時刻の取得
set currentDate=%DATE:/=%
set currentTime=%TIME::=%
set currentTime=%currentTime: =0%
set currentTime=%currentTime:~0,6%

rem コピー
xcopy "%~1" "%~1_%currentDate%_%currentTime%\" /E /H /K