※ ChatGPTを利用し、要約された質問です(原文:コマンドプロンプト 日時を用いた計算)
コマンドプロンプトで日付の計算とファイル制御する方法
このQ&Aのポイント
コマンドプロンプトでファイルの制御を行うためには、日付の計算が必要です。しかし、日付に対して直接演算を行うことはできません。
そこで、日付を特定のフォーマットに変換し、それを数値として扱う方法があります。具体的には、%date% 変数を使って現在の日付を取得し、必要な部分を切り出して数値として扱います。
例えば、set FNAME=%date:~0,4%%date:~5,2%%date:~6,2% のように記述することで、「yyyyMMdd」の形式で日付を取得することができます。その後、計算が必要な場合は、set /A コマンドを使って数値として扱います。
こんにちは、お世話になります。
コマンドプロンプトを用いてファイルの制御を行おうと考えているのですが、
日付に特定の数値を減算した結果を制御するファイル名として扱いたいのですが、
日付に対して演算がうまく動きませんでした。
set FNAME=%date:~0,4%%date:~5,2%%date:~6,1%
これで「20120221」を出力し、この日付数値に対して
set /A SUM=FNAME+1
「SUM=20120221+1=20120222」という感じで計算させたいのですが、
どのようにすれば計算ができるでしょうか?
最終的には、
(1)日付を出力します。
(2)(1)で出した日付に数値を加えます。
(3)(2)で計算した数値をファイル名として使用してファイルのリネームやコピーを行います。
初歩的な質問で大変申し訳ないのですが、ご教授のほどよろしくお願いします。
お礼
ご回答ありがとうございました。 すいません、説明不足でした。 コマンドプロンプトを立ち上げて直接 set FNAME=%date:~0,4%%date:~5,2%%date:~6,1% > c:\sample.log set /A SUM=FNAME+1 >> c:\sample.log と入力すると普通に日付+1と計算されるのですが、 batファイルに記載してコマンドプロンプトに読ませると何故か何も計算されませんでした。 (ログが空っぽ) >「月末を考慮して日付として翌日になって欲しい」とかでは無いのですよね? 最終的なイメージとしては一定期間より以前のログファイルを移動したりするのに使用する予定です。 月末が重なる場合は、 20120301から二日前(20120228)のデータを移動するなどを行う予定です。