cmd呼び出しでフォルダ内のすべてのファイルとフォルダを削除する方法


回答:


137

いいえ、わかりません。

何らかの理由(ACLなど)で元のディレクトリを保持し、代わりに実際に空にしたい場合は、次の手順を実行できます。

del /q destination\*
for /d %x in (destination\*) do @rd /s /q "%x"

これにより、最初にディレクトリからすべてのファイルが削除され、次にネストされたすべてのディレクトリが再帰的に削除されますが、全体的に最上位ディレクトリはそのままになります(内容を除く)。

バッチファイル%内では、forループ内を2倍にする必要があることに注意してください。

del /q destination\*
for /d %%x in (destination\*) do @rd /s /q "%%x"

3
私はバッチファイルなしでこれを行うことができました。&&を使用して、2つの操作を連結します
Matt Broekhuis 2012年

1
私は完全なWindowsシェルの初心者です:この例で宛先をパスに設定するにはどうすればよいですか?
low_rents 2015年

単語destinationをパスに置き換えます。必要に応じて、全体を引用符で囲みます。
ジョーイ

4
この答えは私を悲しくさせます、なぜならそれが最良の答えからです
KCD 2016年

1
@stenci:2行目は、指定されたディレクトリのみを削除できます。実際、再帰的に実行しますが、ファイルを削除することはできません。したがって、ディレクトリ内のすべてを削除するには、すべてのファイルとすべてのディレクトリを削除する必要があります。これは、単一のディレクトリとその中のすべてを削除することではないことに注意してください。親ディレクトリ内のすべてを削除し、保持することです。
ジョーイ

39

del c:\destination\*.* /s /q私のために働いた。それがあなたにも役立つことを願っています。


13
すべてのファイルを削除しますが、フォルダは削除しません。
エリック

2
私のために働いたのは、フォルダに移動することでした。(Shiftdel *.*
キーを押しながら

相対パスの例del "../../server/front-end\*.*"
FindOutIslamNow 2018

@ DanielL.VanDenBosch、それはあまりスクリプト化できません。
Synetech

29

私はそれを行う最も簡単な方法は次のとおりだと思います:

rmdir /s /q "C:\FolderToNotToDelete\"

パスの最後の「\」は重要な部分です。


27
これにより、フォルダ自体も削除されます。
Archie

完璧です、これが私に必要なものです:)
gNerb 2015

これは再帰的に機能しますか?長すぎるパスは何ですか?
eomeroff 2016年

2
これを組み合わせるmkdir C:\FolderToNotToDeleteだけで十分でした:)
qbolec 2018

1
親フォルダ(この方法で削除される)がいくつかの重要なアクセス許可を保持している場合、これは問題になる可能性があります。これを再作成する必要があります...
MladenB.19年

15

はい!Powershellを使用する:

powershell -Command "Remove-Item 'c:\destination\*' -Recurse -Force"

ひどいPowerShellは、扱いにくく、肥大化した、非常に遅い獣です。:-|
Synetech

13

サブフォルダー名にスペースが含まれている可能性がある場合は、それらをエスケープされた引用符で囲む必要があります。次の例は、バッチファイルで使用されるコマンドについてこれを示しています。

set targetdir=c:\example
del /q %targetdir%\*
for /d %%x in (%targetdir%\*) do @rd /s /q ^"%%x^"

6

ファイルを削除するには:

del PATH_TO_FILE

すべてのファイルが含まれているフォルダを削除するには:

rmdir /s /q PATH_TO_FOLDER

特定のフォルダからすべてのファイルを削除する(フォルダ自体を削除しない)のは少し複雑です。del /s *.*フォルダを削除することはできませんが、すべてのサブフォルダからファイルを削除します。したがって、2つのコマンドが必要です。

del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"

次のように、必要なもの(フォルダーまたはファイル)を削除するスクリプトを作成できますmydel.bat

@echo off
setlocal enableextensions

if "%~1"=="" (
    echo Usage: %0 path
    exit /b 1
)

:: check whether it is folder or file
set ISDIR=0
set ATTR=%~a1
set DIRATTR=%ATTR:~0,1%
if /i "%DIRATTR%"=="d" set ISDIR=1

:: Delete folder or file
if %ISDIR%==1 (rmdir /s /q "%~1") else (del "%~1")
exit /b %ERRORLEVEL%

使用例はほとんどありません。

mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder

1

簡単な1行のオプションの1つは、ファイルシステムのどこかに空のディレクトリを作成し、ROBOCOPYhttp://technet.microsoft.com/en-us/library/cc733145.aspx)を使用することです。/MIRスイッチでしてすべてのファイルを削除し、サブフォルダー。デフォルトでは、robocopyはセキュリティをコピーしないため、ルートフォルダのACLはそのまま残ります。

また/r、デフォルトの再試行回数は100万回であるため、再試行スイッチの値を設定することもできます。

robocopy "C:\DoNotDelete_UsedByScripts\EmptyFolder" "c:\temp\MyDirectoryToEmpty" /MIR /r:3

0

33個のフォルダーを含むインデックスフォルダーがあり、すべてのファイルとサブフォルダーを削除する必要がありました。インデックスフォルダでコマンドラインを開き、次のコマンドを使用しました。

for /d in (*) do rd /s /q "%a" & (
md "%a")

私はそれらを2行に分けました(最初の行の後にEnterキーを押し、さらに2行目を追加するように求められた場合)。1行で入力すると機能しない場合があるためです。このコマンドは、各ディレクトリを消去してから、空の新しいディレクトリを作成し、元のディレクトリ内のすべてのファイルとサブフォルダを削除します。


0

親ディレクトリに移動します

Line1は「親ディレクトリ」をプッシュしました

サブフォルダを削除する

Line2 rd / s / q。2>ヌル

/superuser/173859/how-can-i-delete-all-files-subfolders-in-a-given-folder-via-the-command-prompt


1
使用するpushd場合は、使用する必要がありpopdます。残念ながら、popdディレクトリを削除すると機能しません。したがって、のcd代わりに行う必要がありpushdます。
xmedeko 2017

0

2つの簡単なステップが必要です。[/ qは静か、/ fは強制、/ sはサブディレクトリを意味します]

  1. 削除するディレクトリを空にします

    del *.* /f/s/q  
    
  2. ディレクトリを削除します

    cd ..
    rmdir dir_name /q/s
    

写真を見る


0

これを試してください。これにより、ルートディレクトリの下のすべてのMyFolderが検索され、MyFolderという名前のすべてのフォルダーが削除されます。

for /d /r "C:\Users\test" %%a in (MyFolder\) do if exist "%%a" rmdir /s /q "%%a"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.