Steamで早期アクセスになっているPrimitier用。
特定フォルダにあるセーブデータを、タイムスタンプをヘッダにしてコピーする。
使って予期せぬ振る舞いをしても責任はとれないのであしからず。
以下をPrimitierSaveDataBackup.batとして保存。
@echo off
cd %userprofile%\Documents\Primitier\Saves
echo start backup
for %%i in (save?.dat) do (call :BU %%i)
pause
exit /b:BU %1
for /F %%j in ("%1") do (set TS=%%~tj)
set TS=%TS: =%
set TS=%TS:/=%
set TS=%TS::=%
set FN=%TS%_%1if exist %FN% (
echo %FN% exists, skipped
) else (
echo copy %1 as %FN%
copy %1 %FN%
)exit /b
実行すると、save1.dat~save8.datについてバックアップする。
「202205080927_save1.dat」みたいな感じ。
言語設定によってヘッダーの内容が変わるかもなので注意が必要。
あと、秒は入っていないとおもうので、超短期間にはバックアップしてくれない。
以下はメモ。
cd %userprofile%\Documents\Primitier\Saves
%userprofile% でログインしているユーザーのフォルダにPATHが通っているはず。
for %%i in (save?.dat) do (call :BU %%i)
遅延変数展開のせいでsetができないので、サブルーチンにしてしまう。
こうすると変数がすぐに更新される。
for /F %%j in ("%1") do (set TS=%%~tj)
%~tj でタイムスタンプ文字列
ファイル名を与えるところは""で挟まないとちゃんと動かない。
気づくのに結構かかった