Я хотел бы удалить все файлы и подпапки в пакетном файле в Windows 7 и сохранить верхнюю папку. В основном очистка папки. Какова инструкция командной строки для этого?
Как я могу удалить все файлы / подпапки в данной папке с помощью командной строки?
10 ответов
вы можете сделать это с помощью del
и /S
флаг (чтобы удалить все файлы из всех подкаталогов):
del /S C:\Path\to\directory\*
самое лучшее разрешение: например, я хочу удалить все файлы и подкаталоги родительского каталога, скажем "C:\Users\Desktop\New папка\". Простой способ-создать пакетный файл из трех команд.
компакт-диск C:\Users\Desktop\New папка\
del * /S / Q
rmdir /S / Q "C:\Users\Desktop\New папка\"
здесь сначала будут очищены все файлы во всех подкаталогах, а затем все пустые подкаталоги. С текущий рабочий каталог является родительским, т. е." \ New folder", команда rmdir не может удалить сам этот каталог.
перейдите в родительский каталог:
pushd "Parent Directory"
удалить вложенные папки:
rd /s /q . 2>nul
rmdir "c:\pathofyourdirectory" /q /s
Не забудьте использовать кавычки и для /q /s
он удалит все репозитории и без запроса.
вы можете использовать rmdir для удаления файлов и подпапок, например:
rmdir /s/q MyFolderPath
однако, это значительно быстрее, особенно когда у вас есть много подпапок в вашей структуре, чтобы использовать del перед rmdir, например:
del /f/s/q MyFolderPath > nul
rmdir /s/q MyFolderPath
вы можете сделать это быстро и легко помещая эти три команды в bat-файла:
mkdir empty_folder
robocopy /mir empty_folder "path_to_directory"
rmdir empty_folder
Если вы хотите удалить все файлы в папке, включая подпапки, а не полагаться на какие-то ошибки, чтобы сохранить корень нетронутым (как я видел в другой ответ) вы могли бы иметь пакетный файл, как это:
@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"
это работало лучше для меня, когда у меня были пробелы в именах папок.
@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
)
удалить файл:
del PATH_TO_FILE
удалить папку со всеми файлами в ней:
rmdir /s /q PATH_TO_FOLDER
удалить все файлы из определенной папки (не удаляя саму папку) немного сложнее. del /s *.*
не удаляет, но удаляет файлы из всех подпапок. Поэтому нужны две команды:
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
это то, что работал для меня.
- перейдите в папку, где вы хотите удалить файлы.
- тип:
del *
Y
"да".- сделал
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]