こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

WSH_フォルダ内の処理について

昨日から作成しているのですが、
新しく質問を立ち上げます。
下記のように、フォルダ内に格納してあるファイルを
取得できるのですが、フォルダ内で作成日時を見て
最新のファイル以外は削除させたい処理をやりたいです。

ファイル名を明示的に記載し比較はできるのですが、
フォルダ内の中から作成日時の最新のファイルを取得する
っていうのができません。

下記ソースはイメージです。

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\test")

For Each objFile In objFolder.Files

If objFile.type = ファイルタイプ Then
  上記ファイルタイプで最新の日付のファイルを出力
上記ファイル以外削除

Else
 上記ファイルタイプが存在しなければ何も処理を行わないず
フォルダ内のファイル一覧を取得
WScript.Echo " " & objFile.Name
Wscript.Echo "NG"

End If

Next

調べているのですが、簡単なソースしか作れません。
お願いします

投稿日時 - 2008-05-26 00:30:09

QNo.4050807

すぐに回答ほしいです

質問者が選んだベストアンサー

1回のループで最新日付の取得と削除を行うのは無理だと思います。
ですので
----
「最新日付を格納する変数を宣言」
「そのファイル名を保持する変数を宣言」
For Each objFile In objFolder.Files

If objFile.type = ファイルタイプ Then
  IF objFile.DateLastModified > 最新日付を格納する変数 Then
    最新日付を格納する変数 = objFile.DateLastModified
    ファイル名を格納する変数 = objFile.Name
End If
'  上記ファイルタイプで最新の日付のファイルを出力
'上記ファイル以外削除

Else
 上記ファイルタイプが存在しなければ何も処理を行わないず
フォルダ内のファイル一覧を取得
WScript.Echo " " & objFile.Name
Wscript.Echo "NG"

End If

Next

For Each objFile In objFolder.Files

If objFile.type = ファイルタイプ Then
  If objFile.Name = ファイル名を格納する変数 Then
    'なにかしますか?日付の表示をするなら日付を格納する変数を表示
  Else
    objFile.Delete
  End If
End If

Next
----
このような感じでいかがでしょうか?

投稿日時 - 2008-05-26 01:05:45

補足

早速の返事ありがとうございます。
いただいた返事の中で可能かどうかを載せないで
記述してしまったところがあります。
If objFile.type = ファイルタイプ Then
上記ですが、ファイルタイプを細かく選定できるなら
いいのですが、できないと思っております。
できないのでしたら、フォルダ内を見るようにしたいです。

別で一番古いファイルのみを別フォルダに移動させて削除する
処理はできたのですが、2つ以上ファイルが存在するときの
処理ができないのでできればなんとか上記のもので
作り上げたいと思っております。

投稿日時 - 2008-05-26 01:31:39

お礼

すいません。
上記の理由は分からなかったのですが、
ファイルタイプの構文をなくして
フォルダ内という位置づけでなんとかできました。
ただ、構文でobjFile.Deleteは普通変数を指定しないと
いけないと思っておりましたが、最新ファイル以外削除できたので
びっくりしました。

投稿日時 - 2008-05-26 02:16:40

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

おはようございます。

これで特に問題はなくなったんでしょうか?
ほかに解決すべき問題はございますか?

投稿日時 - 2008-05-26 06:18:34

補足

すいません。
解決というよりは、フォルダ内の拡張子関係なく
作成日が一番新しいファイルのみ残すってバッチを作成して
それを使うかはまだ微妙です。

希望としては、ある拡張子だけ見て、そのファイルの中で
作成日が一番新しいのを残す。
他の拡張子のファイルには影響を及ぼさないバッチを作れたらって
思っております

投稿日時 - 2008-05-29 00:37:06

あなたにオススメの質問