rucia
@rucia

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

バッチファイルで70分前の時刻を出力する方法を教えてください!

バッチファイルで70分前の時刻を出力する方法を教えてください。
ネットで色々調べましたが方法が分からなかったのでTT

0

3Answer

  • 使用しているOSはなんでしょうか?
  • 現在時刻の70分前ということでしょうか?
  • 出力するとは、単にechoで表示することでしょうか?
  • CやPythonでプログラムを組んで、それをバッチファイルから呼び出す方法でもよいでしょうか?
1Like

powershell使っていいなら、

@powershell -command "Write-Output([DateTime]::Now.AddMinutes(-70).ToString('yyyy/MM/dd HH:mm:ss'))"
1Like

Comments

  1. @rucia

    Questioner

    ご回答ありがとうございます。併せてご返信遅くなり申し訳ございません。
    恐縮ですが、こちらの結果を変数に代入する方法も教えていただきたいです。

  2. return [DateTime]::Now.AddMinutes(-70).ToString('yyyy/MM/dd HH:mm:ss')
    

    これを適当なファイル(とりあえず "Time.ps1"とする)に保存し、
    下記のようなバッチファイルを書けば環境変数に入れる事は一応可能です。
    直接コマンドラインから叩くなら、%%A は %A にしてください。

    for /f "usebackq delims=" %%A in (`powershell -File Time.ps1`) do set MYTIME=%%A
    echo %MYTIME%
    

    手の込んだ処理するなら、環境変数に戻してバッチファイル内で処理するよりは、powershell勉強して全部powershellで書いた方が楽かも。

  3. 返信がありませんが、もし解決されたのであれば質問をクローズしてください。
    あと、すぐに返信しろとは言いませんが、さすがに質問したまま放置する期間が長すぎです。メールなどでそんな事していたら、普通に考えて失礼ですよね。
    何か理由があって長期間返信を返せないのなら、その旨を書いておいてください。

Windowsバッチには特殊変数%TIME%があり、現在時刻を得られます。

ECHO %TIME%

変数を特定の部分だけピックアップ(展開)することで数値を得られます。例えば%TIME:~,2%と書くことで「時」の数字部分だけを得られます。
SETコマンドには/Aオプションを指定することで演算することができます。
IFコマンドとSETコマンドで演算することで希望の出力を得られるでしょうが、正直諄いことになるので要件に縛りが無いのであれば他言語で組み上げた方が良いです。

展開や演算方法などは調べれば色々出てきます。以上。

0Like

Your answer might help someone💌