Tôi muốn xóa tất cả các tệp và thư mục con trong một tệp bó trong Windows 7 và giữ thư mục trên cùng. Về cơ bản làm trống thư mục. Hướng dẫn dòng lệnh cho điều đó là gì?
ntvdm
nhưng các hệ thống 64 bit chiếm thị phần ngày càng không liên quan.
Tôi muốn xóa tất cả các tệp và thư mục con trong một tệp bó trong Windows 7 và giữ thư mục trên cùng. Về cơ bản làm trống thư mục. Hướng dẫn dòng lệnh cho điều đó là gì?
ntvdm
nhưng các hệ thống 64 bit chiếm thị phần ngày càng không liên quan.
Câu trả lời:
Bạn có thể thực hiện việc này bằng cách sử dụng del
và /S
cờ (để yêu cầu xóa tất cả các tệp khỏi tất cả các thư mục con):
del /S C:\Path\to\directory\*
Giải pháp tốt nhất: ví dụ: tôi muốn xóa tất cả các tệp và thư mục con của thư mục mẹ, hãy nói "C: \ Users \ Desktop \ Thư mục mới \". Cách dễ dàng là tạo tập tin hàng loạt của ba lệnh dưới đây.
cd C: \ Users \ Desktop \ Thư mục mới \
del * / S / Q
rmdir / S / Q "C: \ Users \ Desktop \ Thư mục mới \"
Ở đây đầu tiên nó sẽ dọn sạch tất cả các tập tin trong tất cả các thư mục con và sau đó xóa tất cả các thư mục con trống. Vì thư mục làm việc hiện tại là thư mục mẹ, tức là "\ Thư mục mới", lệnh rmdir không thể xóa thư mục này.
rmdir
lệnh sẽ xóaNew folder
Điều hướng đến thư mục mẹ:
pushd "Parent Directory"
Xóa các thư mục con:
rd /s /q . 2>nul
pushd
không thêm bất cứ điều gì ở đây mà cd
chưa làm.
rmdir /s path-to-folder
sẽ xóa thư mục với tất cả những thứ trong đó, nhưng người hỏi muốn biết làm thế nào để xóa mọi thứ trong thư mục làm việc.
rmdir "c:\pathofyourdirectory" /q /s
Đừng quên sử dụng dấu ngoặc kép và vì /q /s
nó sẽ xóa tất cả các kho lưu trữ và không cần nhắc.
bạn có thể sử dụng rmdir để xóa các tập tin và thư mục con, như thế này:
rmdir /s/q MyFolderPath
Tuy nhiên, nó nhanh hơn đáng kể, đặc biệt là khi bạn có rất nhiều thư mục con trong cấu trúc của mình để sử dụng del trước rmdir, như thế này:
del /f/s/q MyFolderPath > nul
rmdir /s/q MyFolderPath
rmdir
lệnh (cả hai đều giống nhau) sẽ xóa thư mục mẹ. Đây không phải là một câu trả lời cho câu hỏi. Tại sao mọi người không đọc?
Nếu bạn muốn xóa tất cả các tệp trong một thư mục, bao gồm tất cả các thư mục con và không dựa vào một số điều kiện lỗi để giữ nguyên thư mục gốc (như tôi đã thấy trong một câu trả lời khác), bạn có thể có một tệp bó như thế này:
@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
)
)
Và sau đó bạn chỉ cần gọi nó bằng:
empty_my_folder.bat "C:\whatever\is\my folder"
Điều này làm việc tốt hơn cho tôi khi tôi có khoảng trắng trong tên thư mục.
@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
)
Để xóa tập tin:
del PATH_TO_FILE
Để xóa thư mục có tất cả các tệp trong đó:
rmdir /s /q PATH_TO_FOLDER
Để xóa tất cả các tệp khỏi thư mục cụ thể (không xóa chính thư mục) thì hơi phức tạp một chút. del /s *.*
không thể xóa các thư mục, nhưng xóa các tệp khỏi tất cả các thư mục con. Vì vậy, hai lệnh là cần thiết:
del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"
Bạn có thể tạo một tập lệnh để xóa bất cứ thứ gì bạn muốn (thư mục hoặc tệp) như thế này 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%
Một vài ví dụ về việc sử dụng:
mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder