ココがポイント
やりたい事は、1つのデータベースファイル(FileMakerPro19)を日付管理でバックアップしたい!
BingAIで問い合わせする
ChatGPTの方はデータベースがちょい昔で止まっているというので、最新データも引用してくれるというBingAI(BingChat)を使って問い合わせしてみました。
実際に、「ファイルを日付バックアップするバッチファイルを教えて」と入力したらバックアップするバッチファイルの説明が出てきたので、「具体的なコードを教えてください。」と入力したら下記のコードがでてきました。
setlocal rem /* 今日の日付を取得 (yyyymmdd) */ set now=%date:~-10,4%%date:~-5,2%%date:~-2,2% rem /* に日付を入れてをバックアップ */ xcopy /Y /E C:\ D:\ _%now%\ rem /* 一時停止 */ pause endlocal
「他にコードありますか」と入れたら、ネット検索したサイトの紹介をしてくれました。
実際は、自分で検索したサイトと同じなんですけどね。
バッチファイルの実行
実際に、バッチファイルを動かしてみました。
ココに注意
サイリックコピーは実行できません
となり、バックアップはできませんでした。
サイリックコピーって何?
どうも、バックアップ元とバックアップ先のフォルダが近いとでるようなエラーらしい。
そこで、Cドライブのルートに、backupフォルダを準備したら下の様になり、「F」を選択するとバックアップすることができました。
選択なしでバックアップ
バッチファイルを実行して、途中で、いちいちファイルなのか?ディレクトリなのか?の選択をするのはメンドクサイです。
BingAIに聞きましたがまともな回答が得られませんので、自分で検索して、下記のようにすればいいらしいというのを発見しました。
echo F | xcopy コピー元 コピー先 /d /y /c /s /e /h /r
※ちなみに、フォルダの場合は、
echo D | xcopy "C:\1\*.*" "D:\1" /d /y /c /s /e /h /r
setlocal rem /* 今日の日付を取得(yyyymmdd) */ set now=%date:~-10,4%%date:~-5,2%%date:~-2,2% rem /* ○○に日付を入れてをバックアップ */ echo F | xcopy C:\kts_data\V15KTS.fmp12 C:\backup\kts_%now%.fmp12 /d /y /c /s /e /h /r rem /* 一時停止 */ pause endlocalこ
これで、期待するバッチファイルが出来上がりました。
追記
サイリックコピーの件は、Xcopyのオプションを外せば出なくなることがあとあと分かりました。
Xcopyのオプションに関しては、外部サイトを参照してみてください。
Xcopy以外にも、バッチファイルで使える様なコマンドがあるようですが、Windowsだけで使用するなら十分ですね。
それから、BingAIですが、自分で検索してしらべるのか?BingAIで調べるのか?
どっちが早く目的地に到着できるかが問題ですね。
今のところは、BingAIが勝っているようには思えない。今後を期待したいですね。