2016-08-26 4 views

答えて

0

このタスク用のバッチファイルで使用するコマンドラインは次のとおりです。フォルダ名でサブフォルダのために環境変数TEMPで定義されたフォルダ内のオプション/D検索で FOR

@for /D %%I in ("%TEMP%\Rar$DIa0.*") do @rd /Q /S "%%I" 

コマンド持っていないRar$DIa0.で始まります隠し属性またはシステム属性セット。

ループ変数Iには、このフォルダパターンに一致する見つかったサブフォルダごとに、二重引用符のない完全なパスの名前が含まれていますが、一時フォルダへのパスには1つ以上のスペースが含まれることがよくあります。指定したフォルダにも、すべてのサブフォルダを削除するための静かな実行と/Sためのパラメータ/Qとそのため

だけコマンドRDは二重引用符で囲まれたループ変数Iの現在の値を参照して呼び出さなければなりません。

使用されているコマンドとその動作方法を理解するには、コマンドプロンプトウィンドウを開き、次のコマンドを実行して、コマンドごとに表示されているすべてのヘルプページをすべてよく読んでください。ところで

  • for /?
  • rd /?

:ファイルが別のアプリケーションでそれを修正する/表示するためのアーカイブ内から開かれ、される以外WinRARのは、通常は自動的に一時フォルダを削除WinRARは、開かれたファイルで他のアプリケーションが終了する前に閉じられます。この場合、WinRARは、ファイルが別のアプリケーションで開かれているため、一時的に抽出されたファイルを含む一時フォルダを削除できません。もちろん、RDも、このフォルダがまだ別のアプリケーションの現在のディレクトリであるか、このフォルダ内のファイルが読み取り/書き込みアクセスロック付きの別のアプリケーションによって開かれている場合は一時フォルダを削除できません。

+0

答えをありがとう、それは実際に動作します!これをバッチファイルに実装しました。私は新しい問題があります:これらのフォルダをC:\ $ RECYCLE.BINから削除します。手動で削除せずにこれを行う方法はありますか?私はすべてのファイルを削除したくない、私はこれらのフォルダを除いてすべてを残したい。私はすでに** del/s/q "C:\ $ RECYCLE.BIN \ Rar $ Dla0。*" **を試しましたが、これはうまくいきませんでした。 – Quizzed

+0

コマンド__DEL__は、ファイルを削除するためのコマンドです。コマンド__RD__(ディレクトリの削除)は、フォルダを削除するためのコマンドです。これは、コマンドプロンプトウィンドウで 'del /?'と 'rd /? 'を実行することによってヘルプ出力の最初の行に明示されています。同じバッチファイルでは、公開されたコマンドラインのコピーを作成し、2番目のコマンドライン '%TEMP%'を 'C:\ $ RECYCLE.BIN'に置き換えて、' Rar $ Dla0。* 'と一致するすべてのフォルダをごみ箱フォルダから削除します。または、@ command/d %% I in( "%TEMP%\ Rar $ DIa0。*" "C:\ $ RECYCLE.BIN \ Rar $ DIa0。*")コマンドラインを使用すると、@rd/Q/S "%% I" ' – Mofi

1

for /dは、このタイプの使用のために設計されています。このような何かが(コマンドラインからテストしている場合%の1を削除する)動作するはずです:

for /d %%i in ("%TEMP%\Rar$DIa0.???") do rd "%TEMP%\%%i" 

/dが、それはディレクトリ名の代わりに、ファイル名では動作します。

あなたが自分でそれを容易にしたい場合は、最初の%TEMP%フォルダに変更します

pushdir 
cd /d %TEMP% 
for /d %%i in ("Rar$DIa0.???") do rd "%%i" 

???はそれだけ.後3つの文字を持っているフォルダに作用します。フォルダに3文字の拡張子がない場合は、.???.*に変更してください。あなたがタイプミスを持っている、とフォルダ名には、実際の.がない場合は、ちょうどあなたがあなたがフォルダあなたを得ることを確認するためにechordを変更することにより、最初にそれをテストしたいことがあり、それを削除し、Rar$DIa0???またはRar$DIa0*

を使用実際にそれらを削除する前にしたい。

for(punが意図している)の詳細については、コマンドプロンプトからfor /?を入力してください。

+0

"(Rar $ DIa0 *)do/d %% iの" rd %% i "は動作しません。フォルダは削除されません。 – Quizzed

+0

(Rar $ DIa0)はこの時点で予想外でした。 – Quizzed

+0

それは動作します。私は投稿する前にまずここでそれをテストしました。 2番目のコメントにワイルドカードがありません(?または*のいずれか)。 'rd'が動作しない唯一の理由は、ディレクトリが空でない場合です。この場合、' rd/s %% i'を使う必要があります。またはあなたが私が投稿したもの以外の何かをした場合。私の答えであなたを示したように、Windowsコマンドに組み込まれているヘルプシステムを使用する方法を学びます。コマンド名に続いて '/? 'を使ってアクセスします。 –

関連する問題