[前の記事]« [Win2000]バッチ処理中にウェイトさせたい
[次の記事]起動時に引数として指定した名前の環境変数をバッチ内で参照するには »

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

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

[XP][2003]システム日付、時間、秒をファイル名にしたいがエラーが出てしまう

182.
システム日付のファイルがエラーになる(TnT)
2004年02月03日(火) 14時18分
どうもです。環境はXP、または2003です。
システム日付、時間、秒をファイル名にしたいのですがどうしてもエラーが出てしまいます。
基本的には問題ないのですが、どうやら時間が午前(しかも一桁の場合)のみ問題が発生してしまいます。

最初下記の要領で作ろうとしました。

set today=%date:/=%
set today=%today:~0,8%
set totime=%time::=%
set totime=%totime:~0,6%
type nul > test%today%%totime%.txt

しかしこの場合、時間が午前中の一桁の場合(たとえば9:30:15)、totime変数は
【093015】ではなくスペースが入って【 93015】となってしまいます。
そうするとスペースがはいったことでおかしくなったようでバッチが正しい動きをしなくなります。

そこで方法を変えて下記の方法でやってみました。

set today=%date:/=%
set today=%today:~0,8%
for /f %%i in ('time /t') do set totime=%%i
set totime=%totime::=%
set totime=%totime:~0,6%
type nul > test%today%%totime%.txt

FORをつかってやることにより問題なく【 9】を【09】と取得できる用になりました。
しかし、しかし、こうやると今度は秒の部分が取得できなくなってしまいました。
【0930  】←こんな感じです。
どなたかご教授願います。
作りたいファイルはこんな感じです。【test20040203093015.txt】
よろしくおねがいします。
183.
Re:システム日付のファイルがエラーになる(TnT)
2004年02月03日(火) 14時42分
ふぇむ
>しかしこの場合、時間が午前中の一桁の場合(たとえば9:30:15)、totime変数は
>【093015】ではなくスペースが入って【 93015】となってしまいます。

半角スペースを 0 に置換してしまえばいいのではないでしょうか。
184.
Re2:システム日付のファイルがエラーになる(TnT)
2004年02月03日(火) 14時57分
>>しかしこの場合、時間が午前中の一桁の場合(たとえば9:30:15)、totime変数は
>>【093015】ではなくスペースが入って【 93015】となってしまいます。

>半角スペースを 0 に置換してしまえばいいのではないでしょうか。



え!?え???
そんなことが出来るんですか?
変数の値の一部を置換するなんて。。。方法が検討もつかないんですが・・・。教えてください。
185.
for/?を見てもいまいち使い方が・・?
2004年02月03日(火) 17時35分
>>しかしこの場合、時間が午前中の一桁の場合(たとえば9:30:15)、totime変数は
>>【093015】ではなくスペースが入って【 93015】となってしまいます。

>半角スペースを 0 に置換してしまえばいいのではないでしょうか。



for/?で説明を見ても書いてあることが難しく、理解が出来ません。
試してみても上手く動いてくれないんですが
もう少し詳しく教えてくれませんか?
186.
forじゃなくてset(解決しました。)
2004年02月03日(火) 18時06分
>>>しかしこの場合、時間が午前中の一桁の場合(たとえば9:30:15)、totime変数は
>>>【093015】ではなくスペースが入って【 93015】となってしまいます。
>>
>>半角スペースを 0 に置換してしまえばいいのではないでしょうか。
>>
>>

>for/?で説明を見ても書いてあることが難しく、理解が出来ません。
>試してみても上手く動いてくれないんですが
>もう少し詳しく教えてくれませんか?


forじゃなくてsetで置換するんですね。
こんな感じで出来ました。

set totime=%time::=%
set totime=%totime:~0,6%
set totime=%totime: =0%

間違ってないですよね???
お騒がせしました・・・。
189.
Re4:forじゃなくてset(解決しました。)
2004年02月03日(火) 20時52分
ふぇむ
>forじゃなくてsetで置換するんですね。

そうです。先に書かれたスクリプトの中で既に set 文による置換は既にお書きになっていたので、特に深い説明はつけませんでした。 set文で、くらい書いとけばよかったですね。すみません。
200.
Re5:forじゃなくてset(解決しました。)
2004年02月04日(水) 17時33分
>>forじゃなくてsetで置換するんですね。

>そうです。先に書かれたスクリプトの中で既に set 文による置換は既にお書きになっていたので、特に深い説明はつけませんでした。 set文で、くらい書いとけばよかったですね。すみません。


とんでもないっす!
上のほうでのSETは構文みたいなもんだと思ってました。
とんだ勘違いっす。
だからforじゃなくてsetなんだと気づくのに時間が
かかってしまいました。
勉強不足ですね。。。こちらこそすみません。
ありがとうございました。
 
 


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

 

カテゴリー一覧

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


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

資料書籍

About

2004年02月03日 20:02に投稿されたエントリーのページです。

ひとつ前の投稿は「[Win2000]バッチ処理中にウェイトさせたい」です。

次の投稿は「起動時に引数として指定した名前の環境変数をバッチ内で参照するには」です。

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

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