• ベストアンサー

時刻を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% (4848/10261)
回答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

  • DOSで秒数を表示する

    windows xpのdosで、秒数を含む現在時刻を表示のみする方法を教えてください。 timeコマンドだと秒数まで出るけど、新規に設定する時刻の入力待ちになってしまいます。表示のみできる方法を探しています。 用途は以下の通りです。 Cドライブのファイル(1GB)をDドライブにコピーするのに何秒かかるか転送速度を出すため、以下のようなbatを書きました。 time /tだと、分までしか表示できないので、使い勝手が悪いです・・・ copy.bat ------------------------- time /t cp c:\a.txt d:\b.txt time /t ------------------------- 以上、よろしくお願いします。

  • batファイルでrenameができません。

    Windowsのbatファイルでrenameをするにはどうすればよいでしょうか? カレントディレクトリ └ A というディレクトリ構造があって、Aの中には「a.txt」があるとします。 カレントディレクトリから、 「rename "./a/A.txt" B.txt」 と書いてあるbatファイルを起動しても、「a.txt」の名前が変更されません。 「指定したパスが見つかりません。」と出てきてしまいます。 ダブルクォーテーションを取ったりつけたり、絶対パス、相対パスを書いたりと いろいろ試しましたがだめでした。 何か方法はないでしょうか?

  • batファイルについて

    C:\work\a\a.txt C:\work\a\b.txt C:\work\a\c.txt C:\work\b\a.txt C:\work\b\d.txt C:\work\c\a.txt C:\work\d\a.txt C:\work\d\e.txt C:\work\d\f.txt 上記のようなファイルがあったとき 各ディレクトリのa.txtだけを残したいのですが (他のファイルは全部削除) どのようなbatファイルを作成すればよろしいのでしょうか。 すみませんが方法がありましたら教えてください。

  • batファイルのcopy機能でファイルを結合

    batファイルのcopy機能でファイルを結合すると、最終行に必ず ■ がついてくるのですが、これを消す方法ご存知ありませんか? A.txtの内容 yahoo B.txtの内容 google test この2つのファイルを結合させてA.txtを見てみると A.txt yahoo google test ■ ↑最終行の■を消したい [コマンド] COPY A.txt + B.txt でファイルを結合 A.txtの最終行に ■ マークが現れる。

  • batファイルの記号

    batファイルでechoコマンドがあると思いますが、 下記の文章のように記号を二つ並べているのはなぜでしょうか? ※>>の部分 echo [%DATE% %TIME%] >> "%~dp0%\test.txt"

  • batファイルの相対パス

    batファイルの相対パス あるバッチが相対パスであるファイルを参照しています このバッチファイルを直接起動すれば、正しく参照できますが、 別のディレクトリにいる別のバッチファイルからcallされた場合、 呼び出し先の相対パスではなく、 呼び出し元の相対パスになってしまいファイルを参照できません。 この問題をスマートに解決する方法はありませんか? 例のchild.batからはfile.txtを参照できますが、 parent_1.bat経由の場合、ファイルが見つかりませんとなります。 child.bat の中で、「cd c:\dir_a」を書いて基点を変更すればとりあえずは行けそうですが、可能な限り絶対パスのベタ書きは避けたいです。 宜しくお願いします。 【例】 c:\ | +-dir_a | | | +-child.bat | | | +-file.txt | +-dir_b | | | +-parent_1.bat | +-dir_c | +-parent_2.bat ===== file.txt ===== test-test-test ===== file.txt ===== ===== child.bat ===== type ./file.txt pause ===== child.bat ===== ===== parent_1.bat ===== call c:\dir_a\child.bat ===== parent_1.bat =====

  • vista office2007 テキストをbatファイルに変換

    vistaを使用しています。 XPであればファイル名に拡張子が表示されていたので テキストをバッチにする際は、名前の変更で .txt→.batにしていました。 vistaは名前に拡張子の表示がないのですが どのように変えたら良いのでしょうか?

  • batファイルかフリーソフトでファイル名の特定文字まで削除できますか?

    batファイルかフリーソフトでファイル名の特定文字まで削除できますか? batファイルにて元のファイル名の後ろに日付と時刻を入れることはできたのですが、 例: abc.txt → abc_1006160810.txt これを更新するために、_までを削除したいのですが、どのようにbatファイルを作ればいいのか分かりません。 どなたか、知恵をいただけませんか。 したいことは、 abc_1006160810.txt の _1006160810 を削除するだけのbatファイルです。 batファイルではなく、フリーソフトにコマンドラインで一発変換でも構いません。 よろしくお願いいたします。

  • batファイルについて

    コマンドプロンプト(batファイル)で同一のフォルダにある 一定の条件のファイル(内容はテキストファイル)を一つのファイルにまとめる場合 以下のコマンドで出来ます TYPE *2015-04* > ../201504.txt サブフォルダに格納されている同条件の多数のファイルを一つにまとめる場合 どのような内容にすればよいでしょうか?

  • batコマンド ファイルの一覧

    batファイルを使用して、指定したフォルダの中にあるテキストファイルの一覧を「一覧.txt」というファイルを新規作成して、そのファイル内に記載したいのですが何か良い方法はないでしょうか? ご教示お願いします。 (例) フォルダAの中にテキストA、テキストB、テキストCがある。 batファイルを実行すると同フォルダ内に「一覧.txt」が作成され、ファイルを開くと テキストA テキストB テキストC と記載されている。

専門家に質問してみよう