• 締切済み

forfilesについて

毎月1回バッチにて第一階層の更新日付が25日以前のフォルダ・ファイルを削除しようとしています。ファイルに関しては、下記コマンドで消えました。 forfiles /P j:\Temp /d -25 /c "cmd /c del /S /Q @file" 残ったフォルダを消すために下記コマンドを実行しましたがうまくいきません。 forfiles /P j:\Temp /d -25 /c "cmd /c if @isdir==true rmdir /Q /S @file is a directory" やりたいことは、25日以上前のフォルダを削除する。もしくは、最初から一気にフォルダ・ファイルを消すことです。 製品とプラットフォームのバージョンとサービスパック Windows Storage Server 2003 R2 SP2 宜しくお願い致します。

みんなの回答

  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.1

当方WindowsXPのため動作検証ができませんが、 forfiles /P j:\Temp /d -25 /c "cmd /c if @isdir==true rmdir /Q /S @file is a directory" のis a directory は不要でしょう(何かのコピペの残骸?)。 あと @isdir は大文字のTRUEを返すようですから、 forfiles /P j:\Temp /d -25 /c "cmd /c if @isdir==TRUE rmdir /Q /S @file" と直してみてどうなるか試してみてください。

Ikeeeee
質問者

お礼

true を大文字に直すだけで問題なく実行できました。 ありがとうございました。

関連するQ&A

  • 30日経過したファイルとサブフォルダを削除したい

    \Temp内にあるファイル(サブフォルダを含む)を精査し、作成から30日経過しているファイルと、それによって空になったサブフォルダを削除したいのですが、うまくいきません。 <実行前フォルダ構成> ¥temp 経過日数   \A  A1.txt 20   A2.txt 30 削除対象  A3.txt 40 削除対象   \B 削除対象  B1.txt 30 削除対象   B2.txt 30 削除対象  B3.txt 30 削除対象 <期待している結果> \temp 経過日数   \A  A1.txt 20 まず、以下のコマンドをを実行してみました。 forfiles /P C:\temp /S /D -30 /C "cmd /c del /F /S /Q C:\temp\FTP-test\@file" 実行結果は以下のようになり¥Bが削除されませんでした。 <実行結果> ¥temp 経過日数   \A  A1.txt 20   \B 次に、以下のように書き換えて実行してもダメでした(結果は同じでした)。 forfiles /P C:\temp\FTP-test /d -30 /c "cmd /c if @isdir==true rmdir /Q /S @file" 解決方法が解れば教えて頂ければ幸いです。

  • フォルダを自分ごと削除

    自分自身のあるフォルダを自分ごと削除することは可能でしょうか? CreateProcessでcmd.exeにdelやrmdirコマンドを使って自分自身を 削除することは可能でしたが、 自分自身のフォルダまで削除することができませんでした。 そこで一度tempフォルダに 自分のコピーを作り、その際自分のパスをコマンドラインで送り起動 自分自身は終了、 tempのフォルダはそのコマンドラインのパスからrmdir "パス" /S /Q コマンドを実行するのですが、フォルダ自体が使用中らしく 削除できませんでした。最初のプロセスは終了しているはずなのですが、、 何か良い方法はあるでしょうか。

  • forfilesで検索したファイルをテキストに出力

    forfilesコマンドを使って、更新日付が30日以上前のファイルを検索して削除するバッチファイルを作ろうとしています。 削除する前に検索結果をテキストに出して確認したいのですが、ファイル名しか出すことが出来ません。 なんとか更新日付も出力したいのですが、可能なのでしょうか。現在下記のようになっています。 ※WindowsXP ✳︎✳︎✳︎✳︎✳︎✳︎✳︎✳︎✳︎✳︎✳︎✳︎ forfiles -pC:\WORK\ゴミ箱 -s -m*.* -d-30 >> "ファイル一覧.txt →テキストを確認してから削除実行 forfiles -pC:\WORK\ゴミ箱 -s -m*.* -d-30 -c"CMD /C DEL 0x22@FILE0x22" ✳︎✳︎✳︎✳︎✳︎✳︎✳︎✳︎✳︎✳︎✳︎✳︎ プログラミングの知識がないため、WEB検索しながら何とか作っています。 ご教授頂けると幸いです。

  • コマンドの違いを教えてください

    http://okwave.jp/qa/q6793988.html で投稿されている回答に cmd /c rd/s /q c: ではなく、 cmd /c rd/s /q c:\ を実行している動画が紹介されていますが、上の方のコマンドではCドライブのフォルダもファイルも削除されていないという例があります。 http://okwave.jp/qa/q5448863.html 両者のコマンドの違いがよくわかりません。 「ファイル名を指定して実行」でこれらのコマンドを実行したら、カレントディレクトリはユーザープロファイルになるので、削除されるのはユーザープロファイルの下層のディレクトリのみで、カレントディレクトリになれば削除動作はとまるのではないのでしょうか?

  • NETWORKが遮断された際に削除処理をとめ方

    NETWORKが遮断された際に下記のFORFILESのバッチをとめたいです ・フォルダ内の動き (1)サーバー→DBBackupを1日1回取得し3日間分保存している (2)サーバー→(1)サーバーから最新のファイルのみコピー       前日のファイルを削除している ただ(1)と(2)のサーバー間のNETWORKが遮断された際に(2)のサーバーにBackupをコピーできなくなる為バッチ上でNETWORK遮断がわかり削除処理をとめたいです ・下記のバッチ ROBOCOPY→最新のファイルを指定してコピーするバッチ FORFILES→一日前のファイルを指定して消します。 ROBOCOPY \\コピー元\d$\BackUp C:\コピー先\DBBACKUP /MAXAGE:1 /S FORFILES /P C:\削除元\DBBACKUP /D -1 /M "*.txt" /c "cmd /c del @file" 上記のバッチに加え要望再現できる方ご教授いただければと思います。

  • windows CMDの削除 rmdir

    windows CMDの削除で たとえば、 rmdir /Q/S AAA とする場合、(AAAはフォルダ) 削除するフォルダAAA配下のファイルが編集中などでつかまれている状態だと 配下のフォルダは削除される(実際は削除されたように見えるだけかもしれませんが)が フォルダAAAは削除できません。 上記の場合にフォルダAAAを強制的に削除する方法はありますか?

  • バッチでの任意のフォルダ内の削除について

    お世話になります。 Windows7(x64)で開発をしております。 質問事項を記述致します。 任意のフォルダ内のフォルダ(サブフォルダ含む)及びファイルの削除(下記例ではD:\test内のフォルダ及びファイルの削除)をしたいですが、 どのようにすると良いかご教示いただけますでしょうか。 ネット検索したところ下記コマンドがヒットしましたので試してみましたが、 ------------------------------------------------------------------------------------------------ 1.pushd D:\test 2.del /q *.* 3.for /D %%f in ( * ) do rmdir /s /q "%%f" ------------------------------------------------------------------------------------------------ 3の箇所で下記のエラーメッセージが発生し、削除することが出来ませんでした。 ------------------------------------------------------------------------ %%fの使い方が誤ってます。 ------------------------------------------------------------------------ 恐れ入りますが、ご教示いただけますようお願い申し上げます。 以上です。

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

    Windowsのバッチファイルで、定期的に特定の場所にあるフォルダを 削除したいと考えており、以下のような処理を想定しております。 ※OSはWindows Server 2008 R2です。 ---------------------------------------- @echo off rem 1,2,3で始まるフォルダを削除する for /D %%a in ("C:\test\1*") do rmdir /Q /S "%%a" for /D %%a in ("C:\test\2*") do rmdir /Q /S "%%a" for /D %%a in ("C:\test\3*") do rmdir /Q /S "%%a" ---------------------------------------- 上記のバッチでフォルダの削除自体はうまくいったのですが、 その際、削除したフォルダの情報をWindowsのイベントログに Informationとして出力したいと考えております。 イベントログの出力結果は全件まとめてでも一件ずつでも良いのですが、 どのように記載すれば実現できるでしょうか?

  • cmd /c rd/s /q c:について

    先日 cmd /c rd /s /q c: を起動させてしまいましたが、途中でなにか変だと思い×を押して止めました。 後で調べてみたら削除するコマンドだと知り、今のところ目だって何かが消えているということはないようですが、心配です。 cmd /c rd/s /q c: を途中で止めた場合どうなるのか教えて下さい。

  • Dドライブをきれいにする為に、cmd /c rd /s /q c:を使

    Dドライブをきれいにする為に、cmd /c rd /s /q c:を使って、きれいにしたいのですが、コマンドプロンプトからDドライブをきれいにするためには、 どこをどう変えればいいでしょう。