• 締切済み

VBScriptで削除処理

初めまして。 VBScriptを今回初めて使用しながらスクリプトを作成しようとしています。 〔質問〕 以下のような削除処理をVBScriptにて実施したいのですが、どのような構文を書けばいいのでしょうか? ご教授お願いします。 以下、例を挙げ記述致します。 (例)処理日が2008/3/22の場合。 「AAAA」ディレクトリ配下の以下のログファイルを二日前までの日付になっているログファイルのみ残し、あとは全て削除するという処理をしたい。 AAAAディレクトリの配下 ・aa080319.log→削除 ・aa080320.log→削除 ・aa080321.log→残す ・aa080322.log→残す 上記例を用いますが、自分で考えた処理フローとしまして、 (1)「AAAA」ディレクトリ配下のファイル一覧をテキストファイルに書き込む。 (2)「(1)」で作成したテキストファイルを読み込み、「2008322」と「2008321」に一致しないログファイルを削除。 以上、宜しくお願いします。

みんなの回答

  • celtis
  • ベストアンサー率70% (2271/3210)
回答No.1

似たようなvbsがいくつか見つかりましたので、中身を見て参考にしてください。 http://www.moongift.jp/2007/08/windows_janitor_cleanup/ http://lifehacker.com/software/lifehacker-code/clean-out-old-files-with-the-windows-janitor-script-288443.php 38行目のnumberOfDaysで、日時の指定ができます。 http://lifehacker.com/assets/resources/lhcode/janitor_0.2.1.vbs 引数で設定ができるものもあります。 http://www.kawabata.com/delold.asp

関連するQ&A

  • VBscript日付を指定して、ファイル削除

    あるフォルダ内で、過去5日分を残して、それ以前に作成されたファイルを削除するVBScriptを作成しようと考えています。 また、フォルダ内で、削除するファイルの拡張子は「.log」のみです。 色々と検索してみたのですが、方法が分かりません。 どなたか、教えていただけないでしょうか。 OSは、WindowsServer2003 EE 64bitです。 宜しくお願いします。

  • VBScriptで、フォルダ内の拡張子によって処理を分けたい。

    VBScriptで、フォルダ内の拡張子によって処理を分けたい。 C:\WORK\*.xls C:\WORKの配下に「xls」ファイルが存在していた場合、Aの処理を行い、 存在していなかった場合、Bの処理を行うというスクリプトを作成したいと思っております。 しかし・・・ --------------------------------------------------------- Set objFSC = CreateObject("Scripting.FileSystemObject") If objFSC.FileExists("C:\WORK\*.*") = "xls" Then 【処理A(xlsファイルの削除/別のフォルダからxlsファイルのコピー】 Else 【処理B(別のフォルダからxlsファイルのコピー)】 End If --------------------------------------------------------- とした場合、FileExistsメソッドがワイルドカードに対応していないため 処理が行われません。 フォルダの中には"xls"以外の拡張子のものも存在しており、フォルダごと削除する 訳にもいきません。また、個別に名前を指定することも出来ない状況です。 どなたか、お力をお貸しいただけないでしょうか。 以上 よろしくお願いいたします。

  • テキスト処理の速度の速い言語

    最大80MBまで増加するテキストファイルがあります。 あるアプリケーションのログファイルです。 最大80MBまで達します。 80MBまで達したら新しいファイルが作成され、 そこにログが出力されます。 このログファイルの中身を読み取り、 ある処理をして、計算結果や、必要な箇所を別のテキストファイルに 出力するプログラムを作成しました。言語はVBScriptです。 このプログラムを10分に一度実行する必要があります。 そこで問題になってしまったのが、処理時間です。 前回の処理が終わらないまま10分が経過して 次の処理が開始されてしまうのです。 特にまずいのがデータ量の多い期末や年度末です。 そこでVBScriptよりも速くテキスト処理を行える言語を教えて下さい。 BATでもJScriptでもPerlでもCでもC++でもJavaでも何でも良いです。 教えて下さい。 よろしくお願いします。

  • VBScriptで重複レコードを削除して出力したいのですが…

    ただいまVBScriptを勉強中です。よろしくお願いします。 たとえば、以下のようなカンマ区切りのテキストがあるとして、 お菓子のレコードがダブったときに3列目の『高い』を優先して 出力する方法はありますでしょうか? 言語はVBScriptでお願いします。 <テキストファイル例> お菓子,001A,高い お水,002A,安い お菓子,001A,安い ご飯,003A,高い … <出力ファイル例> お菓子,001A,高い お水,002A,安い ご飯,003A,高い …

  • VBScriptでエクセルを開き、

    VBScriptでエクセルを開き、 そのエクセルにテキストを書き込んでセーブしてから閉じる。 という処理を行っているのですが、 テキストを書き込んでいる間に、エクスプローラー上で別のエクセルファイルを開こうとすると、VBScriptで開いている同じエクセルアプリケーションで開いてしまい、 VBScriptのセーブしてから閉じるという処理が走ると、同様に閉じてしまいます。 希望としては、 テキストを書き込んでいる間に、エクスプローラー上で別のエクセルファイルを開こうとすると、別エクセルアプリケーションが開き、VBScriptとは、別として動作してほしいと考えていますが、 私の至らぬ知識ですとどうしても解決できません、ご協力をお願い致します。

  • VBScriptのエラー処理について

    SQLコマンドファイルを読み込み、ODBC接続によりSQL Server(2000)に接続してクエリを発行し、結果をログファイルに出力するVBScriptのプログラムを作成しています。 SQL実行時のエラーに対応する為、vbscriptにてエラーオブジェクトのプロパティ(Err.Number、Err.Description)を使用し、エラー番号と内容を取得しているのですが、SQL Serverから発行しているエラー番号が取得できません。エラー内容は正常に取得できるのですが、なぜか正常なエラー番号が取得できない状態です。例えば、SQL Serverの構文エラーのエラー番号は170ですが、Err.Numberで取得すると、-2147217865となってしまいます。 原因のわかる方がいらっしゃいましたら、是非ご教示いただきたく。 お手数をおかけ致しますが、宜しくお願い致します。

  • バッチファイルで定期的にファイル削除を行う方法

    windows2003サーバーでテキストファイルにプログラムの処理結果を記述させています。 そのログファイルを1日に1回削除するバッチファイルを作成しようと考えています。 以下のような動きをするようにするにはどのように記述したら良いのでしょうか。(ログファイルの名前をlog.txtとします。) 1,log.txtを削除 2,0キロバイトのlog.txtを作成 「log.txtを削除」はdelコマンドでできますが、「0キロバイトのlog.txtを作成」でファイル新規作成のコマンドがわかりません。 もし分かる方がいましたら教えてください。

  • ファイル比較抽出とWindowsとのファイル連携方法

    こんにちは、UNIX上で行うファイル比較とWindowsとのファイル連携について わからない事があり、ご教示頂きたく投稿致します。 毎日1回、テキストファイルを比較してもし差分があれば 管理者に解る形で抽出させる、という処理を行いたいのです。 環境は以下の通りです。 192.168.1.0/24のセグメント内のあるWindows2003Serverにおいて、 比較対象のファイル(AAAA.txtとする)は以下の場所に日々保存される。 例えば2005年4月1日には C:\Switch\configs\2005\04\01 というディレクトリ配下にAAAA.txtが作成される。 4月2日ならばC:\Switch\configs\2005\04\02配下にAAAA.txtが作成される。 当日のAAAA.txtと前日のAAAA.txtを比較抽出する処理を、毎日自動で行いたい。 例えば2005年4月10日だと C:\Switch\configs\2005\04\10配下のAAAA.txtと C:\Switch\configs\2005\04\09配下のAAAA.txtを比較することになる。 そして比較抽出を処理するのはUNIX端末(そのWindowsサーバと同セグメント)である。 ポイントは、 ・比較したいファイルの場所(ディレクトリ)が日々、日付によって変動する ・そのファイルはWindows2003Serverが稼動しているサーバ内にある ・そのファイルをUNIX(例えばBSD)が稼動している端末から参照し、  毎日任意の時間に比較・抽出したい というところかと思うのですが、どういう手段がベストでしょうか。 UNIXに疎い私なりに調べたところ、 diffとsortコマンド、そして「samba」と「クーロン」というツールがあれば 可能かと思うのですが、如何でしょうか。 スクリプトをどう書くかなど、具体的な手法をご教示頂ければ幸いです。 よろしくお願い致します。

  • VBScriptでフォルダの圧縮

    こんばんは、 旧システムからのファイルやフォルダの移行を計画しています。 手が回らない状況もあり、大変恐縮ですが下記要件を 実現するサンプルやソースをご紹介頂けると助かります。 旧システムからのファイルやフォルダを圧縮し、 それを、新サーバ上に移動後、解凍をすることを考えています。 サーバはWindows2000のため、VBScriptを想定しています。 ※旧本番ですが、まだ本番稼動中のシステムで圧縮ツールは入ってません >>対象1 社員番号で作成されたフォルダを個別に圧縮 例: C:\ID\ID0001 C:\ID\ID0002 C:\ID\ID0003 ・・・ ⇒フォルダ数は洗い出せているので、リストファイルに 上記ディレクトリを一覧で記載し、スクリプト内でリストファイルを読み込み、 ループしながら上記フォルダを1行ずつ読み込み、圧縮をかけるイメージです。 ※フォルダは300ぐらいあります >>対象2 こちらがちょっと悩んでいます。 2500ものテキストのログファイルが、 「F:\log\」の配下に出力されています。 (ファイル名に規則性はありますが、ファイル名から日付などの判断は難しいです) 仮に1ファイル1024Kとした場合で、「F:\log\」をまるごと圧縮した場合、 2GB超のファイルになる懸念があります。 ⇒一定のファイル数毎(例えば200ごととか)に、圧縮ファイルを作成するなど、 制御することは可能でしょうか?。 (上記のようにリスト化して、2500ファイルを個別に圧縮でも良いかもしれません) >>その他 解凍も併せてご確認を頂けると助かります。 ・・・ 以上、よろしくお願い致します。 箱田

  • ディレクトリの削除

    winxp he sp2 Q: \temp以下のdirectoryとfileを削除する方法ありませんか  RD /s \temp では \tempも削除されます。 \tempは残して、それ以下のdirとfileを削除する方法です。 \tempの下の\aa \bb はテンポラリdirで、名前がころころ変わります。 \temp -\aa 名前がころころ変わる -\bb 名前がころころ変わる RD /s \temp /S 指定されたディレクトリに加えて、そのディレクトリ内のすべての ディレクトリとファイルを削除 よろしくお願いします。

専門家に質問してみよう