重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

コマンドプロンプトを使って日数計算をしたものを修正したいのですがどうすれば良いでしょうか?
set YYYYMM=%DATE:~-10,4%%DATE:~-5,2%
set /a LASTMONTH=YYYYMM-1
この日数計算をすると今から一か月前の日付が取れます。
(今なら200802なので200801ですね)
その内下四桁をLASTMONTHとして扱いたいのですがどうしたら良いでしょうか?例として200801と計算が出たもののうち0801だけのように抜き出したいんです。
if %LASTMONTH:~-2%==00 set /a LASTMONTH+=12-100

そのあとの分は上記のようになっています。(まだ意味がわかってはいません)
よろしくお願いします。

A 回答 (1件)

set /? で表示されるヘルプをよく読んでください。


今回は末尾4文字を取り出せばよいので、
echo %LASTMONTH:-4%
でOKです。

---
環境変数の置換は、次のように拡張されます:

%PATH:文字列 1 = 文字列 2%

は、PATH 環境変数を展開し、その結果に含まれるすべての "文字列 1" を
"文字列 2" に置き換えます。

長さが指定されなかった場合は、変数の
値の残りの長さを既定値とします。オフセットまたは長さのどちらかが負の値
の場合、環境変数の値の長さに指定されたオフセットまたは長さをたしてその
数を使います。

%PATH:~-10%

は、パス変数の最後の 10 文字が展開されます。

----

ただし、質問の例では環境変数の遅延展開を使う必要があるでしょう。
詳しい説明は、set /? のヘルプと、cmd /? のヘルプを読んでください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!