1. ホーム
  2. windows

[解決済み] バッチジョブでファイル名をタイムスタンプとして作成する

2023-02-18 14:11:04

質問

毎日実行されるバッチ ジョブがあり、ファイルをピックアップ フォルダにコピーします。私はまた、そのファイルのコピーを取って、ファイル名を指定してアーカイブ フォルダにドロップしたいと思います。

 yyyy-MM-dd.log

Windowsのバッチジョブでこれを行う最も簡単な方法は何ですか?

私は基本的にこの Unix コマンドに相当するものを探しています。

cp source.log `date +%F`.log

どのように解決するのですか?

CP source.log %DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%.log

でも、ロケールに依存します。 私は、もし %DATE% がローカライズされているのか、Windows で短い日付に指定されたフォーマットに依存しているのかはわかりません。

から現在の日付を抽出するロケールに依存しない方法は次のとおりです。 この回答 から現在の日付を抽出する方法ですが、これは WMICFOR /F :

FOR /F %%A IN ('WMIC OS GET LocalDateTime ^| FINDSTR \.') DO @SET B=%%A
CP source.log %B:~0,4%-%B:~4,2%-%B:~6,2%.log