- ベストアンサー
バッチ作成によるNEWS.htmlの表示方法
- ネットワーク環境化(ドメイン環境)でWindows起動時にお知らせなどを記入したNEWS.htmlを表示させたいと考えています。
- ログインスクリプト内に単純にNEWS.htmlを実行するコマンドを記入すれば、お知らせの表示はされるのですが、毎回同じNEWS.htmlが表示されるとわずらわしいので、一度表示したら次回お知らせが更新されるまで表示されないバッチを作成したいと思うのですがアイデアと知識が足りずに困っています。
- ログイン時にログインスクリプトでNEWS.htmlを実行させる。但し、一度NEWS.htmlが表示されたら次回NEWS.htmlが更新されるまでこの処理は実行されない
- みんなの回答 (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 検証できないのでうまく動かない場合は、どこでどんなエラーになるか補足ください。
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
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レスポンスヘッダーを駆使するのが良いのでは。
お礼
ありがとうございます。まさにやりたいことはこの通り。 vbsのほうが幾分スマートな気がします、ですがログオンスクリプトから直接読み出しできないので どうしてもbat側がらcallで呼んでこないと動かない点が難点でした。 すばやいご回答ありがとう御座います。
お礼
ありがとうございます。FCコマンド・・・比較コマンドってあったんですね; 完全に知識不足でした。こちらを参考にbat一本で完結できました。 ご回答ありがとうございます。