dポイントプレゼントキャンペーン実施中!

ネットワーク環境化(ドメイン環境)でWindows起動時にお知らせなどを記入したNEWS.htmlを表示させたいと考えています。

ログインスクリプト内に単純にNEWS.htmlを実行するコマンドを記入すれば、お知らせの表示はされるのですが、毎回同じNEWS.htmlが表示されるとわずらわしいので、一度表示したら次回お知らせが更新されるまで表示されないバッチを作成したいと思うのですがアイデアと知識が足りずに困っています。

用件
ログイン時にログインスクリプトでNEWS.htmlを実行させる。
但し、一度NEWS.htmlが表示されたら次回NEWS.htmlが更新されるまでこの処理は実行されない

というようなモノを作成しようと思うのですがお知恵をおかしいただけ無いでしょうか?

※ 例えばNEWS.htmlの作成日を変数に入れて新しいものと古い物を比較する?ことなど出来るのでしょうか?
これに限らず、こんな方法がいいのでは?ということと参考サイトなどあれば教えて下さい。

A 回答 (2件)

おはようございます。


No.1さんの方法をもっとバッチ向けに簡単にできないか考えてみました。

・ローカルのTEMPフォルダにNEWS.htmlがあるか確認する。
 ある場合、サーバ側のNEWS.htmlとTEMPに格納されているNEWS.htmlをFCコマンドで比較して同じならなにもせず終了
・NEWS.htmlを表示
・ローカルのTEMPフォルダにサーバのNEWS.htmlを上書き保存。

ただログオンスクリプトでサーバ側のファイルをどのように記述するかがわからないので自信がない(検証できない)のですが
つぎのような感じでしょうか。

if not exist "%TEMP%\NEWS.html" goto notexist
fc \\server\news\NEWS.html "%TEMP%\NEWS.html"
if %errorlevel%==0 goto end
:noexist
start \\server\news\NEWS.html
copy /y \\server\news\NEWS.html "%TEMP%\NEWS.html"
:end

検証できないのでうまく動かない場合は、どこでどんなエラーになるか補足ください。
    • good
    • 0
この回答へのお礼

ありがとうございます。FCコマンド・・・比較コマンドってあったんですね;
完全に知識不足でした。こちらを参考にbat一本で完結できました。
ご回答ありがとうございます。

お礼日時:2011/01/24 15:24

 Windowsにはバッチファイルの他にWindows Scripting Host(WSH)、Windows Power Shellなどという仕組みが備わっている(XPはPower Shellは別途インストール)ので、ログオンスクリプトにWSHが使えるのであればFileSystemObjectというオブジェクトを用いてファイルの更新年月日時分秒を取得したり比較したりできるのでWSHとFileSystemObjectについて調べてみるといかがかな。



・ファイルサーバー(これはWindowsフォルダー共有(SMB)が好ましい)のHTMLファイルの情報取得。
・ローカルのTempとか(できれば%APPDATA%\hogeなど消されないしユーザーごとに持てるし人の目に映りにくいしな場所が良い)にそのファイルがあればそちらの情報も取得。
・二つの日付を比較してローカルが古ければ表示。
・ローカルのTempとか(できれば%APPDATA%\hogeなど消されないしユーザーごとに持てるし人の目に映りにくいしな場所が良い)にそのファイルをコピー。

とかそういう流れになるのかな。HTTPサーバーにあるHTMLファイルを使うのならLastModified HTTPレスポンスヘッダーを駆使するのが良いのでは。
    • good
    • 0
この回答へのお礼

ありがとうございます。まさにやりたいことはこの通り。
vbsのほうが幾分スマートな気がします、ですがログオンスクリプトから直接読み出しできないので
どうしてもbat側がらcallで呼んでこないと動かない点が難点でした。
すばやいご回答ありがとう御座います。

お礼日時:2011/01/24 15:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!