一意の名前のフォルダーを削除するには、batファイルが必要です


2

だから、私はファイルを削除し、フォルダを見つけて削除するためにbatファイルに取り組んでいます。

ファイルは正常に削除されますが、残りの部分で問題が発生しています。削除しようとしているフォルダーの名前は毎回異なりますが、フォルダー名の先頭に毎回同じキーワードが含まれています。

次の行は、問題のフォルダーを見つけるために機能していますが、見つかったフォルダーを実際に削除する方法がわかりません。

dir C:\location\*keyword*.* /S

どんな助けも大歓迎です。

PS .bat用に作成されていないコードでも問題ありませんが、そうでない場合は起動時に実行するように設定する必要があります。

次の両方を(同時にではなく)使用して、見つかったファイルを削除しました

del C:\location\*keyword*.* /S 
rd  C:\location\*keyword*.* /S 

次の両方を使用しました(同時にではありません)del C:\ location * keyword *。* / S rd C:\ location * keyword *。* / S
Rezenik

おそらく、forループを試すことができます-で構文と例をチェックアウトss64.com/nt/for_d.html -彼らの例を変更することで何かを試してみて、私たちはあなたが何をしたか知っているとそれがどのように働いた
dbmitch

トンありがとう。必要な2つのフォルダーを削除するという意味では機能しましたが、これら2つに加えて、一見ランダムな(およびキーワードとはまったく関係のない)フォルダーも約20個削除しました。私のキーワードはかなり具体的であるため、フォルダは削除されてはならないことを知っています。そのため、なぜそれが起こったのか知っているのかと思います。そうでない場合、それは大きな問題ではなく、本質的には、私が自動削除しようとしている2つのフォルダ以外の一時ファイルを削除するだけです。再度、感謝します。
-Rezenik

今それを受け入れるとロックされるかどうかはわからなかったが、答えを受け入れた。私が使用していたキーワードはgw2cacheでした。どうもありがとう。
-Rezenik

ええ、なぜそうなったのかわからなかったので、実際にはコードの問題ではないと思ったのですが、確認する価値がありました。いずれにせよ、すべてのフォルダーは一時フォルダーであったため、大きな問題ではありませんでした。素晴らしい仕事をありがとう
-Rezenik

回答:


1

入れDIRてコマンドを/Bして、あまりにもスイッチFOR /Fループしてから使用してバッチ置換をのみ表示するようにドライブ文字パスの再帰で見つかったファイルの見つかったフォルダのDIR「と検索する文字列を指定して、コマンドkeyword」とワイルドカードのようにあなたの例、そしてそれをRDコマンド/Q/Sスイッチで渡します。


バッチスクリプト

 @ECHO ON

 SET keyword=<My Keyword>
 SET searchfolder=C:\Folder\<StartHere>

 CD /D "%searchfolder%"
 FOR /F "TOKENS=*" %%F IN ('DIR /S /B "*%keyword%*.*"') DO RD /S /Q "%%~DPF"

 GOTO EOF

さらなるリソース

  • / F

  • バッチ置換(FOR /?)

    さらに、FOR変数参照の置換が強化されました。次のオプションの構文を使用できるようになりました。

    %~I         - expands %I removing any surrounding quotes (")
    %~fI        - expands %I to a fully qualified path name
    %~dI        - expands %I to a drive letter only
    %~pI        - expands %I to a path only
    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    %~sI        - expanded path contains short names only
    %~aI        - expands %I to file attributes of file
    %~tI        - expands %I to date/time of file
    %~zI        - expands %I to size of file
    %~$PATH:I   - searches the directories listed in the PATH
                   environment variable and expands %I to the
                   fully qualified name of the first one found.
                   If the environment variable name is not
                   defined or the file is not found by the
                   search, then this modifier expands to the
                   empty string
    

テストスクリプト

を押しEnterて各コマンドに移動する必要がありますが、を押す前に Enter、画面全体を読んですべてが見つかったことを確認し、これが削除されるものなどに期待していることを確認してください。

 @ECHO ON

 SET keyword=<My Keyword>
 SET searchfolder=C:\Folder\<StartHere>

 CD /D "%searchfolder%"

 ECHO *** Below are the folder path and file names of the files matching "*%keyword%*.*" 

 DIR /S /B "*%keyword%*.*"

 PAUSE
 CLS

 ECHO *** Below are the folder paths that will be deleted  where files were found to reside matching the pattern "*%keyword%*.*"

 FOR /F "TOKENS=*" %%F IN ('DIR /S /B "*%keyword%*.*"') DO ECHO RD /S /Q "%%~DPF"

 PAUSE

 GOTO EOF
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.