- ベストアンサー
バッチで削除したフォルダをイベントログに出力したい
- Windowsのバッチファイルで、定期的に特定の場所にあるフォルダを削除したいと考えております。
- バッチでフォルダの削除自体はうまくいったのですが、その際、削除したフォルダの情報をWindowsのイベントログにInformationとして出力したいと考えております。
- イベントログの出力結果は全件まとめてでも一件ずつでも良いのですが、どのように記載すれば実現できるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No2です。 >今回のようにfor文で対象を検出・削除している処理の中に、eventcreateコマンドを織り込んで結果を出力する方法がわからなかったのです。 >おそらく、deleteコマンドは標準出力がないため、一回ごとに戻り値を取るようなことをしないと実現できないのだろうと考えております。 それはもとの質問と全く関係のないことですよね。 なぜ知りたいことと全く違うことを質問に書いたのでしょうか? それはさておき、rmdir が成功したときだけeventcreateしたいのであれば、 mdir /Q /S "%%a" && eventcreate ~~ です。
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
管理者権限で eventcreate コマンドを使えば出来ます。 詳しくはコマンドプロンプトで、eventcreate /? eventcreate /t information /l application /id 1 /d "%%a を削除しました" とか。 管理者権限でコマンドを実行する方法はわかりますかね? おそらくタスクスケジューラーからこのバッチファイルを定期実行するんでしょうから、「最上位の特権で実行する」のチェックをオンにする。
お礼
ご回答ありがとうございました。説明不足で申し訳ございません。 eventcreateやタスクスケジューラへの組み込み方法については理解しておりましたが、 今回のようにfor文で対象を検出・削除している処理の中に、eventcreateコマンドを 織り込んで結果を出力する方法がわからなかったのです。 おそらく、deleteコマンドは標準出力がないため、一回ごとに戻り値を取るような ことをしないと実現できないのだろうと考えております。 もし方法がわかるようでしたらご教授いただけますでしょうか?
- kteds
- ベストアンサー率42% (1882/4440)
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
お礼
ご回答ありがとうございました。 ご紹介頂いたサイトを参考にしてPowershellでもできることを確認できました。 ただ、今回は対象に.Net Framework3.5を追加していない環境も存在しており、 Powershellの一部のClassが参照できなかったため、通常のバッチで実行することとしました。
お礼
ご回答ありがとうございました。 おかげさまで、バッチで想定していた動作をさせることができました。 お手数お掛けし申し訳ありませんでした。