• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチで削除したフォルダをイベントログに出力したい)

バッチで削除したフォルダをイベントログに出力したい

このQ&Aのポイント
  • Windowsのバッチファイルで、定期的に特定の場所にあるフォルダを削除したいと考えております。
  • バッチでフォルダの削除自体はうまくいったのですが、その際、削除したフォルダの情報をWindowsのイベントログにInformationとして出力したいと考えております。
  • イベントログの出力結果は全件まとめてでも一件ずつでも良いのですが、どのように記載すれば実現できるでしょうか?

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

No2です。 >今回のようにfor文で対象を検出・削除している処理の中に、eventcreateコマンドを織り込んで結果を出力する方法がわからなかったのです。 >おそらく、deleteコマンドは標準出力がないため、一回ごとに戻り値を取るようなことをしないと実現できないのだろうと考えております。 それはもとの質問と全く関係のないことですよね。 なぜ知りたいことと全く違うことを質問に書いたのでしょうか? それはさておき、rmdir が成功したときだけeventcreateしたいのであれば、 mdir /Q /S "%%a" && eventcreate ~~ です。

---yamaori---
質問者

お礼

ご回答ありがとうございました。 おかげさまで、バッチで想定していた動作をさせることができました。 お手数お掛けし申し訳ありませんでした。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

管理者権限で eventcreate コマンドを使えば出来ます。 詳しくはコマンドプロンプトで、eventcreate /? eventcreate /t information /l application /id 1 /d "%%a を削除しました" とか。 管理者権限でコマンドを実行する方法はわかりますかね? おそらくタスクスケジューラーからこのバッチファイルを定期実行するんでしょうから、「最上位の特権で実行する」のチェックをオンにする。

---yamaori---
質問者

お礼

ご回答ありがとうございました。説明不足で申し訳ございません。 eventcreateやタスクスケジューラへの組み込み方法については理解しておりましたが、 今回のようにfor文で対象を検出・削除している処理の中に、eventcreateコマンドを 織り込んで結果を出力する方法がわからなかったのです。 おそらく、deleteコマンドは標準出力がないため、一回ごとに戻り値を取るような ことをしないと実現できないのだろうと考えております。 もし方法がわかるようでしたらご教授いただけますでしょうか?

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.1

eventlogを操作するコマンドレットが powershell に用意されています(添付画像)ので利用してはどうでしょうか。 New-EventLog Write-EventLog を使用すればいいと思います。 事例の記述もありますのでマイクロソフト Technet サイトを参照してください。 http://technet.microsoft.com/ja-jp/library/hh849768.aspx http://technet.microsoft.com/ja-jp/library/hh849847.aspx

---yamaori---
質問者

お礼

ご回答ありがとうございました。 ご紹介頂いたサイトを参考にしてPowershellでもできることを確認できました。 ただ、今回は対象に.Net Framework3.5を追加していない環境も存在しており、 Powershellの一部のClassが参照できなかったため、通常のバッチで実行することとしました。

関連するQ&A