- ベストアンサー
時刻を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(表示内容)
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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%
その他の回答 (3)
#1の者です。 ごめんなさい、OSの設定はいじれない、という前提だったのですね。きちんと読まずに回答してしまいました。失礼しました。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
時刻の表示形式が変更できないのであれば、 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 に置き換えます
手元にNTマシンが無いので確認できませんが、OSの時刻表示設定に依存している可能性はありませんでしょうか? WindowsXPだと、コントロールパネル→地域と言語のオプション→カスタマイズ のところで変更できます。 NTでも同様の設定はあるはずです。たしか。
お礼
ありがとうございます。非常に役に立ちました。