[前の記事]« 内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません
[次の記事]「指定されたラベルは見つかりません」のエラーが出る »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「DATE,TIME…日付、時刻の取得/利用」索引へ

NTで9:59以前の時間をHHMMにするには

37.
NTで9:59以前の時間をHHMMにするには
2004年11月01日(月) 14時09分
NT初心者
似たような処理はWin2000では可能なのですが
NTですと 9:59以前の場合 H:MM がかえってくるようです。
以下は、14:02:12 の時の例ですが、

@echo off
rem 現在の日付を求める---
for /f %%D in ('date /t') do set TODAY=%%D
set yyyymmdd=%TODAY:/=%
echo yyyymmdd:[%yyyymmdd%]

rem 現在の時刻を求める---
for /f "tokens=2 delims=. " %%T in ('echo:^|time') do set TIME=%%T
set hhnnss=%TIME::=%
echo hhnnss:[%hhnnss%]

rem 生成するファイル名を作成---
set fname=%yyyymmdd:~0,8%_%hhnnss:~0,4%.dmp
echo fname:[%fname%]

■出力結果
yyyymmdd:[20041101]
hhnnss:[140212]
fname:[20041101_1402.dmp]

これを、9:59以前に実行すると、(例 09:01:43)

■出力結果2
yyyymmdd:[20041101]
hhnnss:[90143]
fname:[20041101_9014.dmp]

となってしまいます。20041101_0901.dmp と出力するには
どうしたら良いでしょうか。よろしくお願いします。
40.
Re:NTで9:59以前の時間をHHMMにするには
2004年11月01日(月) 18時18分
otn
NT4が手元にないのですが、
>rem 現在の時刻を求める---
>for /f "tokens=2 delims=. " %%T in ('echo:^|time') do set TIME=%%T
>set hhnnss=%TIME::=%
>echo hhnnss:[%hhnnss%]

timeコマンドの表示結果が、下記のように空白の個数が違うのであれば(Win2000だとそう)、
現在の時刻: 18:14:03.23
現在の時刻:  8:14:03.23
"tokens=2-4 delims=:." で切り出して、空白を0に置換して2文字目から取れば出来ると思います。
43.
Re2:NTで9:59以前の時間をHHMMにするには
2004年11月02日(火) 14時10分
NT初心者
>"tokens=2-4 delims=:." で切り出して、空白を0に置換して2文字目から取れば出来ると思います。

set hhnn=%TIME: =0%

上記の様に空白を0に置き換えたら上手くいきました。
otnさん、ありがとうございました。
 
 


カテゴリー「DATE,TIME…日付、時刻の取得/利用」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2004年11月01日 01:27に投稿されたエントリーのページです。

ひとつ前の投稿は「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」です。

次の投稿は「「指定されたラベルは見つかりません」のエラーが出る」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート