[前の記事]« コマンド入力画面(セーフモード)からWindowsXPを立ち上げるには
[次の記事]連続した空白文字を環境変数に格納したい »

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

▲カテゴリー「FOR /F」索引へ
▲カテゴリー「NET TIME」索引へ

net timeコマンドの結果を変数に設定したいのですが・・・


600) net timeコマンドの結果を変数に設定したいのですが・・・ Jam 2002/09/04(水) 19:14


はじめましてJamといいます。
今回batファイルにてサーバの時間とクライアントの時間の同期(サーバの時間をクライアント起動時に設定する。)をとるバッチファイルを作成しようとしているのですがなかなかうまくいきませんどなたかご存知であればご教授願います。

SET Server_Time=NET TIME サーバ名

のような事をやりたい・・・

601) Re:net timeコマンドの結果を変数に設定したいのですが・・・ じゃく 2002/09/04(水) 20:04


Jamさんこんにちは。

>今回batファイルにてサーバの時間とクライアントの時間の同期(サーバの時間をクライアント起動時に設定する。)をとるバッチファイルを作成しようとしているのですがなかなかうまくいきませんどなたかご存知であればご教授願います。

うまくいかないのは、
(1)バッチでクライアントの時刻とサーバの時刻の同期をとる
(2)同期をとった結果を環境変数に保存する
のどちらでしょうか?
表題をみると、(2)のようなのですが、(1)かもしれないし。

>SET Server_Time=NET TIME サーバ名

>のような事をやりたい・・・

コマンドラインで NET TIME サーバ名 を実行すると、

\\XXXX-SEVER01 の現在の時刻は 2002/09/04 19:57 です
コマンドは正常に終了しました。

というようなメッセージが出ると思いますが、このメッセージの
どの部分を環境変数に設定したいのでしょうか?
それによってバッチの記述がかわるので教えてください。
また対象のクライアントのOSも教えてください。

602) Re2:net timeコマンドの結果を変数に設定したいのですが・・・ Jam 2002/09/04(水) 20:44


>Jamさんこんにちは。

>>今回batファイルにてサーバの時間とクライアントの時間の同期(サーバの時間をクライアント起動時に設定する。)をとるバッチファイルを作成しようとしているのですがなかなかうまくいきませんどなたかご存知であればご教授願います。

>うまくいかないのは、
>(1)バッチでクライアントの時刻とサーバの時刻の同期をとる
>(2)同期をとった結果を環境変数に保存する
>のどちらでしょうか?
>表題をみると、(2)のようなのですが、(1)かもしれないし。

>>SET Server_Time=NET TIME サーバ名
>>
>>のような事をやりたい・・・

>コマンドラインで NET TIME サーバ名 を実行すると、

>\\XXXX-SEVER01 の現在の時刻は 2002/09/04 19:57 です
>コマンドは正常に終了しました。

>というようなメッセージが出ると思いますが、このメッセージの
>どの部分を環境変数に設定したいのでしょうか?
>それによってバッチの記述がかわるので教えてください。
>また対象のクライアントのOSも教えてください。
ご返信ありがとうございます。
説明不足ですみません・・・
やりたい事
① サーバ名より2002/09/04 19:57を取得。
② クライアントの時間(Date&Time)を取得。
③ サーバーの時間とクライアントの時間を比較する。
④ 上記③の時間の差が5分差がある場合NET SENDコマンドにてメッセージを表示させる。
⑤ 上記③の時間の差が5分以内の場合そのままサーバの時間をクライアントに設定させる。

をbatファイルで作成しようと考えております。
のでまず「同期(NET TIMEコマンドで取得)をとった結果を環境変数に保存する」の質問になります。

OS環境はWindows2000になります。

お忙しいところすみませんがよろしくお願い致します。

603) Re3:net timeコマンドの結果を変数に設定したいのですが・・・ じゃく 2002/09/04(水) 21:35


Jamさんこんにちは。
> ① サーバ名より2002/09/04 19:57を取得。

ここはこんな風にできます。snameはサーバ名です。
set sname=\\server01
for /F "tokens=3" %%i IN ('net time %sname%') DO set sdate=%%i
for /F "tokens=4" %%i IN ('net time %sname%') DO set stime=%%i


> ② クライアントの時間(Date&Time)を取得。

これは、%DATE% と %TIME% で参照可能です。
ただし、コントロールパネル-地域の設定の日付と時刻の表示形式に
依存するようなので
echo %TIME%
echo %DATE%
で表示される内容が(1)と同じか確認したほうがいいです。

> ③ サーバーの時間とクライアントの時間を比較する。
> ④ 上記③の時間の差が5分差がある場合NET SENDコマンドにてメッセージを表示させる。
> ⑤ 上記③の時間の差が5分以内の場合そのままサーバの時間をクライアントに設定させる。
>
(3),(4)は結構面倒ですね。5分差を計算せねば。
これは厳密に5分差を求めるほうがいいですか?
日付が異なる場合無条件に net send だと楽ですが、
 日替わり時 23時から0時の判定や年越し時も正確に
 判定するとなると面倒です。
どの精度まで求められますか?


605) Re4:net timeコマンドの結果を変数に設定したいのですが・・・ Jam 2002/09/05(木) 09:43



じゃくさんご返信ありがとうございます。

次の課題5分の比較を検討したいと思います。

まだまだbat(dosコマンド等)のレベルがあまりにも低い事を認識致します。

ありがとうございました。




>Jamさんこんにちは。
>> ① サーバ名より2002/09/04 19:57を取得。

>ここはこんな風にできます。snameはサーバ名です。
>set sname=\\server01
>for /F "tokens=3" %%i IN ('net time %sname%') DO set sdate=%%i
>for /F "tokens=4" %%i IN ('net time %sname%') DO set stime=%%i


>> ② クライアントの時間(Date&Time)を取得。

>これは、%DATE% と %TIME% で参照可能です。
>ただし、コントロールパネル-地域の設定の日付と時刻の表示形式に
>依存するようなので
>echo %TIME%
>echo %DATE%
>で表示される内容が(1)と同じか確認したほうがいいです。

>> ③ サーバーの時間とクライアントの時間を比較する。
>> ④ 上記③の時間の差が5分差がある場合NET SENDコマンドにてメッセージを表示させる。
>> ⑤ 上記③の時間の差が5分以内の場合そのままサーバの時間をクライアントに設定させる。
>>
> (3),(4)は結構面倒ですね。5分差を計算せねば。
> これは厳密に5分差を求めるほうがいいですか?
> 日付が異なる場合無条件に net send だと楽ですが、
> 日替わり時 23時から0時の判定や年越し時も正確に
> 判定するとなると面倒です。
> どの精度まで求められますか?


606) Re5:net timeコマンドの結果を変数に設定したいのですが・・・ じゃく 2002/09/05(木) 09:57


Jamさんこんにちは

>じゃくさんご返信ありがとうございます。

>次の課題5分の比較を検討したいと思います。

5分以内の比較、がんばって検討してみてください。
 数値の計算は set /a コマンドでできますので参考まで。

 
 


カテゴリー「FOR /F」索引へ
カテゴリー「NET TIME」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2002年09月04日 13:32に投稿されたエントリーのページです。

ひとつ前の投稿は「コマンド入力画面(セーフモード)からWindowsXPを立ち上げるには」です。

次の投稿は「連続した空白文字を環境変数に格納したい」です。

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

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