gooドクター有料プランが1ヶ月間無料!

はじめまして。プログラムがあまり分からないのですが書き込みさせていただいています。
Windows2000 Serverのサーバーで、
ある特定のフォルダを”開くー数秒そのままー閉じる”という処理を自動で行いたいのです。
どなたかこのような処理をするコマンド(プログラム)ご存知でしょうか。
”開く”というコマンドは、
explorer "C:\xxxx\yyy
start c:\xxxx
と、いくつかあるようですが、指定のフォルダを閉じるコマンドがわかりません。

下記にも同様の質問があるのですが、指定のフォルダを閉じるという結果が得られていなかったので、書き込みさせていただいています。
http://oshiete1.goo.ne.jp/qa4024982.html

ご協力お願いします。

gooドクター

A 回答 (2件)

回答番号:No.1 お礼へのアドバイスです。



mk-sanさんもお気づきと思いますが、対象のフォルダを開いて閉じるのが最善の対策かどうかは疑問ですね。

5000ファイルを溜め込む処理(どういう間隔で? 1日で?)を見直すのがよいかもしれませんし、また、目視で5000ファイル全てを確認するのではないでしょうから、フォルダを開かずに目的のファイルだけを直接開けばよいかもしれません。

やはりフォルダを開かざるを得ないとしても、キャッシュを有効にするためにはフォルダを開いて閉じなくてもスクリプトでフォルダ内を空読みすればよさそうな気がします。

一般論として、OSへの要求(本件の場合フォルダを開いて閉じる)は避けられるものなら避けた方がシステム全体の性能のためには良いと思います。
    • good
    • 0
この回答へのお礼

SHIMAPEEさん。

貴重なご回答ありがとうございます。
やはり5000件ものファイルを溜め込むことからの見直しからスタート
しようかと思います。

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

お礼日時:2008/12/20 15:54

閉じるためにはWindowを探すという不確実な方法を取るしかなさそうです。

VBS(WSH VBScript)で書くと例えば下のようになります。Windows XP SP3で試しましたがWindows2000 Serverでも同様にできると思います。

なお、数秒開いて自動的に閉じることの目的は何でしょうか。確認するためにはじっくり眺めてから手動で閉じるべきでは。

例えばファイルが1個以上存在すればOKとか? もしそうでしたらフォルダを開かずにスクリプトでチェックした方がよいと思います。

目的を書いて頂ければ別の回答があるかもしれません。

'goo4540635.vbs
Option Explicit
Dim FolderName, WshShell, fso, Return
FolderName = "C:\Program Files" '★開くフォルダのフルパス
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Return = WshShell.Run("""" & FolderName & """", 1) 'フォルダを開く
if Return=0 then
WScript.Sleep 3000 '★3000ms待つ
WshShell.AppActivate fso.GetFileName(FolderName) 'Windowを探す
WScript.Sleep 100
WshShell.SendKeys "%{F4}" 'ALT+F4キーを送って閉じる
end if
    • good
    • 1
この回答へのお礼

SHIMAPEEさん
ありがとうございます。
ご指摘いただいている”目的”ですが、
Win2kサーバーをファイルサーバーとして利用しているのですが、
1つのフォルダ内に5000ファイルほどをためてしまう構造になっています。(サーバの他のフォルダからスクリプト(?)のようなものを使って、自動的にそのフォルダにデータがたまるようになっています。)
 そのためなのかは、よくわからないのですが、そのフォルダをサーバー上で開くと、数十秒近く時計マークがでてなかなかフォルダ内のデータを確認できません。一度そのフォルダを開くと、その後は瞬時に開くようになります。(キャッシュの問題では?と同僚から言われております。)
他の処理にも何となくですがレスポンスが悪くなっているような気がします
構造的な問題があるかもしれないのですが、このレスポンスの悪さを解消するために、データを移動させるスクリプトにデータ移動後、フォルダを開いて、閉じるという内容を加えたいと思っております。
この処理をする際には、指定のフォルダ以外は開いていないようにする予定です。
このようなご回答で今回の投稿内容の目的をご理解いただけるでしょうか。

お礼日時:2008/12/18 23:59

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング