web-dev-qa-db-ja.com

コマンドプロンプトで特定のフォルダ内のすべてのファイル/サブフォルダを削除する方法はありますか

Windows 7でバッチファイル内のすべてのファイルとサブフォルダーを削除し、最上位フォルダーを保持したい基本的にフォルダを空にする。そのためのコマンドライン命令は何ですか?

42
Tony_Henrich

del/Sフラグを使用してこれを行うことができます(すべてのサブディレクトリからすべてのファイルを削除するように指示します)。

del /S C:\Path\to\directory\*
52
MDMarra

最善の解決策:私は親ディレクトリのすべてのファイルとサブディレクトリを削除したいのですが、 "C:\ Users\Desktop\New folder \"と言います。簡単な方法は、以下の3つのコマンドのバッチファイルを作成することです。

cd C:\ Users\Desktop\Newフォルダ\

del */S/Q

rmdir/S/Q "C:\ Users\Desktop\New folder \"

ここで最初にそれはすべてのサブディレクトリの中のすべてのファイルをきれいにしてそして次にすべての空のサブディレクトリをきれいにします。現在の作業ディレクトリは親ディレクトリ、つまり "\ New folder"なので、rmdirコマンドはこのディレクトリ自体を削除することはできません。

21
Annasaheb

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

pushd "Parent Directory"

サブフォルダを削除します。

rd /s /q . 2>nul
9
user340956

このようにrmdirを使ってファイルとサブフォルダを削除できます。

rmdir /s/q MyFolderPath

ただし、次のように、rmdirの前にdelを使用することが、構造内に多数のサブフォルダがある場合は特に高速です。

del /f/s/q MyFolderPath > nul
rmdir /s/q MyFolderPath
5
rmdir "c:\pathofyourdirectory" /q /s

引用符を使うことを忘れないでください、そして/q /sのためにそれはすべてのリポジトリを削除するでしょうそしてプロンプトなしで。

5
SuperUser

あなたはあなたのbatファイルにこれらの3つの指示を入れることによってそれを速くそして容易にすることができます:

mkdir empty_folder
robocopy /mir empty_folder "path_to_directory"
rmdir empty_folder
3
fireblood

すべてのサブフォルダを含め、フォルダ内のすべてのファイルを削除し、ルートフォルダを損なわないようにするためにいくつかのエラー条件に頼らない場合は、次のようなバッチファイルを使用できます。

@echo off

REM Checking for command line parameter
if "%~1"=="" (

    echo Parameter required.
    exit /b 1

) else (

    REM Change directory and keep track of the previous one
    pushd "%~1"

    if errorlevel 1 (

        REM The directory passed from command line is not valid, stop here.
        exit /b %errorlevel%

    ) else (

        REM First we delete all files, including the ones in the subdirs, without confirmation
        del * /S /Q

        REM Then we delete all the empty subdirs that were left behind
        for /f %%D IN ('dir /b /s /a:d "%~1"') DO rmdir /S /Q "%%D"

        REM Change directory back to the previous one
        popd

        REM All good.
        exit /b 0
    )

)

そして、あなたはそれを単に呼び出します:

empty_my_folder.bat "C:\whatever\is\my folder"
3
Gio

ファイルを削除するには

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
Maxim Suslov

フォルダ名にスペースがあると、これは私にとってはより良く機能しました。

@echo off
REM ---- Batch file to clean out a folder
REM Checking for command line parameter
if "%~1"=="" (

echo Parameter required.
exit /b 1

) else (
echo ***********************************************************************************
    echo *** Deleting all files, including the ones in the subdirs, without confirmation *** 
    del "%~1\*" /S /Q
echo ***********************************************************************************
    REM Deleting all the empty subdirs that were left behind
FOR /R "%~1" %%D IN (.) DO (
    if "%%D"=="%~1\."  (
    echo *** Cleaning out folder: %~1 *** 
    ) else (
    echo Removed folder "%%D"
    rmdir /S /Q "%%D"
    )
) 

    REM All good.
    exit /b 0

)
1
Ed Hammond

これは私のために働いたものです。

  1. ファイルを削除するフォルダ内を移動します。
  2. タイプ:del *
  3. はいの場合はY
  4. 完了
0
Erv