• ベストアンサー

時刻をBATファイルにて24時間に変換する方法

現在Windows NTにてBATファイルを使用してテキストファイルにて一部のデーターを 抽出している作業を行っております。 その中で時刻を載せているのですが、今まではAM/PM標識(01:03pや01:03a)のようにしていたのですが、 今後24時間表示(01:03pを13:03)に切り替えなければいけなくなってしまいました。 本当なら、時刻の設定で切り替えればいいのですが、使用しているシステムにて AMやPMを読みにいっている状態で変更が不可の状態になってしまいました。 その為、BATファイルにて切替えを行わなくてはいけないのですが方法がわかりません 申し訳ありませんが教えて下さい。 現在のtime /tの内容 time /t >A.txt 01:03p(表示内容) これをこちらにしたいです time /t >A.txt 13:03(表示内容)

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

NT4は手元に無いのですが、2000やXPだと%TIME%は常に24時制なのでもし同じなら、 set T=%TIME: =0% (9:59までは先頭空白なのでそれをゼロにする) set T=%T:~0,5% echo %T% が簡単です。それでだめだと、 for /f %%A in ('time/t') do set T=%%A set T1=%T:~0,2% set T2=%T:~3,2% set T3=%T:~5% if %T3%==p set /a T1=1%T1%-100+12 set T=%T1%:%T2% echo %T%

mytora1
質問者

お礼

ありがとうございます。非常に役に立ちました。

その他の回答 (3)

noname#25230
noname#25230
回答No.4

#1の者です。 ごめんなさい、OSの設定はいじれない、という前提だったのですね。きちんと読まずに回答してしまいました。失礼しました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

時刻の表示形式が変更できないのであれば、 HH:MM形式で時刻を表示するプログラムを作るのが良いと思います。 例えば、VBScriptで WScript.Echo right("0" & hour(time),2) & ":" & right("0" & minute(time),2) という内容のファイルを time.vbsという名前で保存したとして バッチの time /t >A.txt を cscript //Nologo time.vbs >A.txt に置き換えます

noname#25230
noname#25230
回答No.1

手元にNTマシンが無いので確認できませんが、OSの時刻表示設定に依存している可能性はありませんでしょうか? WindowsXPだと、コントロールパネル→地域と言語のオプション→カスタマイズ のところで変更できます。 NTでも同様の設定はあるはずです。たしか。

関連するQ&A