• ベストアンサー

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

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

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

「0キロバイトのlog.txtを作成」 typeコマンドで表示させ、リダイレクトさせます。 削除直後でlog.txtが存在しない状態で type log.txt > log.txt です。 バッチ等を定時に起動させるには「ATコマンド」を用います。 ※モデム制御のATコマンドと混同しないようにね

e_honda
質問者

お礼

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

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

COPY NUL LOG.txt か TYPE NUL > LOG.txt でも。

e_honda
質問者

お礼

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

関連するQ&A

  • 削除バッチ方法を教えてください

    Aフォルダの中のあるファイルのみを残し、他のファイルを削除するバッチorDOSコマンドを教えてください? ログファイルを削除するために上記のような仕様でバッチ作成したいのですが、いろいろと調べていますが、わかりません。 ファイル名を見て削除したいと考えています。 ログのファイル形式は、年日付時刻ABCファイルとなり、当日と前日のログだけを残して、他のログを削除したいのですが、、、 宜しくお願いします。

  • ログの出力するバッチファイル

    実行したPCの名前を一つのログファイルの中に記載するバッチファイルを作成したいと思っております。 (例)log.txtというファイル内に記載されていく PC1 PC2 PC3 もしくは実行したPCの名前のテキストファイルを作成するコマンドを教えてください。 (例) PC1.txt PC2.txt どのようなコマンドを使用すればよいでしょうか? 当方知識不足なので詳しい方ご教示お願いします。

  • バッチファイル テキストファイル内の最後の\以下を削除したい

    バッチで、あるテキストファイル内の最後の\以下を削除して、その結果をバッチの値として利用したいです。 ●テスト条件 %TEMP%のtest.txt に以下のテキスト。 C:\Program Files\software\top xyz ●求める結果: 行末から最初の\以下の文字列を削除。この文字列をバッチファイルで使いたい。 C:\Program Files\software\ ●試したコマンド: なし 全体の流れとしては、バッチでquery取得したパスの不要な部分を削除して、求まったパス(のdirの結果を出力するために)を再度バッチで利用したいです。適切なコマンド・方法がありましたらお願いいたします。

  • バッチコマンドでファイル名の一部を参照して削除

    Windows7を使用しています。 バッチコマンドで、C:\新規フォルダ\LOGに作成された“LOG_YYYYMMDD”と言うテキストファイルを30日前を残して全て削除したいと思っています。 その他ファイルやフォルダが混在する可能性があるので”LOG_”がついたフォルダを対象として削除したいのですが、どのようにすれば良いでしょうか? パターンを考えてみましたが、どちらも足りない部分があるようで上手くいきません。 (1)for /r C:\新規フォルダ\LOG %%D in (LOG_*.txt) do if "%%D" LSS "%ANS%" del /s /q %%D  ※(1)のifの"%%D"のままではダメなのは分かるのですが、どのようにしたら良いのか困っています。 (2)for /r C:\新規フォルダ\LOG %%D in (LOG_*.txt) do (   set DELDATE=%%D   if "%DELDATE%" LSS "%ANS%" del /s DELDATE   ) 簡単な解説もいただけると助かります。 宜しくお願いします。

  • デスクトップ上のファイルを削除する汎用バッチ

    複数の人へ配布する資料を作成しています。 PCは、Windows XP/SP2 最後にデスクトップ上のテキストファイルを全部削除するバッチを 作りたいのですが、デスクトップの指定方法が判りません。 C:/AXP/削除バッチ.bat ------------------------------ echo デスクトップ上のテキストファイルを全部削除します pause del \__デスクトップ__\AXP*.txt ------------------------------ 削除バッチをダブルクリックさせて削除したいのですが、 ユーザーに依存しない指定はあるでしょうか? このサイトの検索もしましたが、良くわかりませんでした。 宜しくお願いいたします。

  • ファイルがどうしても削除できない

    2003のファイルサーバ上に作成されているファイルで、xxxxx.txt. (末尾がピリオド)のファイルが存在し、普通には削除できません。 過去ログ等を見て、以下の方法を試してみました ・フォルダ/ファイルの所有権をadministratorに変更して削除 ・ファイル削除ツール unlockerなど ・コマンドプロンプトから、del "\\?\ドライブ\フォルダ\ファイル名" ・同じ名前のテキストファイルを上書き どうやっても、だめです。 そもそも、そのサーバのコマンドプロンプトでは、削除できないファイルが表示されません。 エクスプローラー上では、表示されますが、隠しファイルみたいにアイコンが薄くなっており、 そのアイコンはwindowsのマークです。 悪さしているわけではないのですが、無用なファイルが残っているのもいやなので、削除して上げたいのですが、方法はありませんでしょうか? よろしくお願い致します。

  • バッチファイルの変数引継ぎについて

    行き詰ってしまったので、どなたか知恵を授けていただければと思います。 現在、あるソフトウェアの「バッチモード」という機能を使用したバッチを作成していて、構文が > sdcmd batch ***.txt 上記のようにコマンドを羅列したテキストファイルを指定した実行コマンドになります。 sdcmd以降はソフト指定のコマンド以外は使用できず、変数設定ができない為に変数設定とログ保存を兼ねて上記コマンドを記載したバッチを > setlocal EnableDelayedExpansion > set ○=△△△ > set ■=◇◇◇ > call aaa.bat %* >> aaa.log 2>&1 という内容の呼び出しバッチを作成たのですが、テキストファイル内の変数が代入されずに 実行されてしまいます。 cmd上から直接 > setlocal EnableDelayedExpansion > set ○=△△△ > set ■=◇◇◇ > sdcmd batch ***.txt >> aaa.log 2>&1 を実行しても変数の代入は行われませんでした。 cmd上で変数とテキストファイル内のコマンドを手動実行すれば変数は解決できます。 設定した変数を、テキストファイル内の変数値に代入する方法はあるでしょうか。

  • バッチファイルでのファイル削除

    ファイル削除をするバッチファイルを作成しようと思うのですが、わからない部分があるので教えてください。 ファイル削除は del [ファイル名] のコマンドでできることはわかります。 自分がやりたいのはCドライブの中のある特定の文字列(例えば「20110326」など)を含んだファイルを見つけ出し、それを削除するようにしたいです。(Cドライブ直下だけでなく、サブディレクトリなども含めて削除) どのようにすればよいのでしょうか? よろしくお願いします。

  • バッチファイルでファイル削除ができない

    こんにちは。バッチファイルについてご質問です。 OSはWindows2003 Serverです。SQL Server2008を使用しております。 SQLエージェントを使用して、以下フォルダに、YYYYMMDDhhmmss.bakというタイトルをつけて、デイリーでバックアップを取っております。 C:\backup\log\ 日々ファイルが増えていくので、最新のファイル5個だけ残したいと思い、 以下のバッチファイルを作成しましたが、"20110111130339.bak"が見つかりませんでした。 というエラーが表示されて、ファイルが削除できません。 フォルダ内には、同タイトルのファイルがあります。 for /f "skip=2" %F in ('dir /b /o-n C:\dbbackup\log\??????????????.bak') do del %F よろしくお願いいたします。

  • バッチ処理 特定ファイルを除く削除

    環境:XP pro SP3 「test.txt」を基本ファイルとして残しておき、 変数を使って「test20090401.txt」というように、 バッチ処理をした日付が名前に入るように毎日自動コピー を作成しまして、加えて、8日目以降 1週間前の ファイルを自動削除したいのですが、基本の「test.txt」 は残しておきたいのです。 以下の処理だと「test.txt」まで削除されてしまうのですが、 他フォルダへの移動退避以外に「test.txt」を残し、 1週間前のファイルを削除する方法をご教授頂きたく お願い致します。 set yyyymmdd=%date:~-10% set yyyymmdd=%yyyymmdd:/=% set LOG_COUNT_LIMIT=7 cd c:\temp copy test.txt test%yyyymmdd%.txt for /f "skip=%LOG_COUNT_LIMIT%" %%a in ('dir /b /o-n *.txt') do (del %%a)

専門家に質問してみよう