限定しりとり

windows内のTEMPフォルダ内にあるファイルならばパスがわかっているので指定すれば削除プログラムを組めます。
が、profileのtemp内やcookies内のファイルになるとprofile名によるのですんなりとは無理です。

VB、C等(Exeファイル)では会社がOK出さないので、batファイルかvbsファイル(混合OK)で組みたいです。

profileですが、10桁の社員コードで出来ています。
例:社長=0000000001。専務=0000000002。
C:\Documents and Settings\0000000001\Cookies
C:\Documents and Settings\0000000001\Local Settings\Temp
profileがどんな数値(管理者はadminなのでadmin内も消したい)でもCooliesとtemp内ファイルを消したいです。

どのように組めばできますでしょうか?
お知恵をお貸しください。

A 回答 (5件)

Dim FSO


Dim Folder
Dim SubFolders
Dim SubFolder
Dim SubFolder2
Dim SubFolder3
Dim File
Dim Path
Path = "C:\documents and settings\"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(Path)
For Each SubFolder In Folder.SubFolders
For Each SubFolder2 In SubFolder.SubFolders
If UCase(SubFolder2.Name) = "TEMP" Then
Set SubFolder3 = FSO.GetFolder(Path & SubFolder.Name & "\TEMP")
For Each File In SubFolder3.Files
FSO.DeleteFile Path & SubFolder.Name & "\TEMP\" & File.Name
Next
End If
Next
Next
Set File = Nothing
SEt Folder = Nothing
Set FSO = Nothing

で一応できますが、権限によっては他ユーザーのフォルダにはアクセスできない場合があります。

この回答への補足

ありがとうございます。
作っていただいたスクリプトは…
C:\documents and settings\(Profile名)\temp\
この下にある「ファイル」を削除するというスクリプトですね。
実際はC:\documents and settings\(Profile名)\Local Settings\temp\ですので、これくらいなら私側でさせていただきます。

それと、このスクリプトですと、temp\以下のファイルは消えるがフォルダ(と、その中身のファイル)までは消してくれないです…

補足日時:2011/02/18 14:14
    • good
    • 0

一人一台ならこんな風に使っていますが


複数の人が同じPCを使っていた場合にSystem の『TEMP』フォルダを削除するのは
止めといたほうが・・・
ましてや他人のパーソナルフォルダは・・・
多分アクセス権で蹴られるかも?と思いますが・・・

また、何がおきるのかユーザーにちゃんと伝えておかないと。
環境変数は、CMD の SET で確認できます。
WinXPならマイコンピュータのプロパティから詳細設定の環境変数で。


○×.bat
rem ログオフ時に一時フォルダの削除・再作成をします
rem C:\WINDOWS\system32\GroupPolicy\User\Scripts\Logoff\ に
rem コピーして使用

rem グループポリシーエディタは、ファイル名を指定して実行から
rem gpedit.msc で開きます

rem Temporary Folder の削除・再作成
rmdir %temp% /s /q
rmdir %tmp% /s /q
mkdir %Temp%
mkdir %Tmp%

rem 最近使ったファイルの削除
rem userprofileを使ってるのでLogOffフォルダに格納
del "%userprofile%\recent\*.lnk" /f /q
del "%userprofile%\recent\*.url" /f /q

この回答への補足

社内で決められた業務システム以外は利用禁止ですので、現状のシステムではtempフォルダ内を削除しても問題なしという結論になっています。
tempフォルダ内を削除した事により「独自で導入したアプリ」が正常に起動しなくなっても責任をとる必要がないとなるのです。

でも、確かに…
遅いと言われるユーザprofileのtempフォルダ内削除とwindows\tempフォルダ内削除でもいいですね。
同じPCを使う他のユーザも遅いというのであれば、ログインしてもらってからファイル実行すればいいのですから。

ありがとうございます。

補足日時:2011/02/18 15:32
    • good
    • 0

環境変数は使わない?

この回答への補足

EXEファイルにしない理由は、どこをどう消しているのか私以外のシステム管理者がわかるようになのです。
ソースを見て「あぁ、ここをこういう風に消しているんだね」と分かればOKなのです。
環境変数を使っても問題なしです。
条件はただ1つ「ソースが見れる事」ですから。

補足日時:2011/02/18 13:54
    • good
    • 0

提示された条件だけなら社員コートをワイルドカードにすれば充分ではないでしょうか。



C:\Documents and Settings\*\Cookies
C:\Documents and Settings\*\Local Settings\Temp

ディスククリーンアップとかWindows標準の機能を使う方が良い気がしますけど。

この回答への補足

c:\a\b\c\test.txtを用意してc:\batファイルを実行しました。
<test.bat>
echo off
del C:\a\*\c
pause

実行すると…
「ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。」
となります。

<test.bat>を以下のようにすればきちんとファイルは消してくれます。
echo off
del C:\a\b\c
pause

PCが遅くなったから速くしてほしいという依頼が最近多いので、batファイル実行でゴミファイルを削除するbatファイルを作ろうと思った次第です。
絶対パスのフォルダ内にあるファイルならば指定すればいいのですが、profile内はどうしよう?と思っての質問です。
batファイル(スクリプト)を実行するだけで簡単にゴミファイル削除、テンポラリファイル削除を行ないたいのです。

補足日時:2011/02/18 13:51
    • good
    • 0

提示された条件だけなら社員コートをワイルドカードにすれば充分ではないでしょうか。



C:\Documents and Settings\*\Cookies
C:\Documents and Settings\*\Local Settings\Temp

ディスククリーンアップとかWindows標準の機能を使う方が良い気がしますけど。
    • good
    • 0

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