it-swarm-id.com

Bagaimana cara menghapus folder kosong menggunakan command prompt windows?

Saya perlu menghapus semua folder kosong dari folder aplikasi saya menggunakan command prompt windows?

Bagaimana saya bisa membuat file kelelawar seperti itu?

Tolong bantu aku.

65
learner
for /f "usebackq" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"

dari: http://blogs.msdn.com/b/oldnewthing/archive/2008/04/17/8399914.aspx

Tentu saja saya akan mengujinya terlebih dahulu tanpa menghapus sebelum saya melakukan perintah itu. Juga, inilah versi modded dari komentar yang menyertakan folder dengan spasi:

 for /f "usebackq delims=" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"

P.S. ada lebih banyak komentar di posting blog yang mungkin membantu Anda, jadi pastikan untuk membacanya juga sebelum Anda mencobanya

49
corroded

Anda dapat menggunakan ROBOCOPY. Ini sangat sederhana dan juga dapat digunakan untuk menghapus folder kosong di dalam hierarki besar.

ROBOCOPY folder1 folder1 /S /MOVE

Di sini sumber dan tujuan adalah folder1, karena Anda hanya perlu menghapus folder kosong, alih-alih memindahkan file lain (yang diperlukan) ke folder lain. Opsi /S adalah untuk melewatkan penyalinan (memindahkan - dalam kasus di atas) folder kosong. Ini juga lebih cepat karena file dipindahkan di dalam drive yang sama.

112
Varun Sharma

Cara yang lebih sederhana adalah dengan melakukan xcopy untuk membuat salinan dari seluruh struktur direktori menggunakan/s switch. help for/s mengatakan Salinan direktori dan subdirektori kecuali yang kosong.

xcopy dirA dirB /S

di mana dirA adalah sumber dengan folder Kosong. DirB akan menjadi salinan tanpa folder kosong

56
Dinesh Rajan

Anda tidak perlu kembaliq:

FOR /F delims^= %%A IN ('DIR/AD/B/S^|SORT/R') DO RD "%%A"
15
tomasz86

Menambah jawaban terkorosi dari halaman referensi yang sama adalah versi PowerShell http://blogs.msdn.com/b/oldnewthing/archive/2008/04/17/8399914.aspx#8408736

Get-ChildItem -Recurse . | where { $_.PSISContainer -and @( $_ | Get-ChildItem ).Count -eq 0 } | Remove-Item

atau, lebih tepatnya,

gci -R . | where { $_.PSISContainer -and @( $_ | gci ).Count -eq 0 } | ri

kredit jatuh ke penulis posting

6
BozoJoe

dari baris perintah: untuk/R/D% 1 di (*) lakukan rd "% 1"

dalam file batch untuk/R/D %% 1 di (*) lakukan rd "%% 1"

Saya tidak tahu apakah ini didokumentasikan seperti itu, tetapi berfungsi di W2K, XP, dan Win 7. Dan saya tidak tahu apakah itu akan selalu berfungsi, tetapi tidak akan pernah menghapus file secara tidak sengaja.

Instal penerjemah UNIX apa pun untuk windows (Cygwin atau Git Bash) dan jalankan cmd:

find/path/ke/direktori -empty -type d 

To find them

find/path/ke/direktori -empty -type d -delete 

To delete them

(tidak benar-benar menggunakan windows cmd Prompt tetapi mudah dan butuh beberapa detik untuk menjalankannya)

1
GreAce
@echo off
set /p "ipa= ENTER FOLDER NAME TO DELETE> "
set ipad="%ipa%"
IF not EXIST %ipad% GOTO notfound
IF EXIST %ipad% GOTO found
:found
echo DONOT CLOSE THIS WINDOW
md ccooppyy
xcopy %ipad%\*.* ccooppyy /s > NUL
rd %ipad% /s /q
ren ccooppyy %ipad%
cls
echo SUCCESS, PRESS ANY KEY TO EXIT
pause > NUL
exit 
:notfound
echo I COULDN'T FIND THE FOLDER %ipad%
pause
exit
0
PRADEESH

Ini akan bekerja dengan baik. Ini adalah cara terbaik untuk menghapus file lama dan menghapus direktori kosong secara rekursif. mengikuti file .bat adalah, 

forfiles /p [PATH] /s /m [FILE-PATTERN] /d -[DAYS] /c "cmd /c del @path"
for /f "delims=" %%d in ('dir [PATH] /s /b /ad ^| sort /r') do rd "%%d"

Placeholder perlu diganti sebagai berikut (tanpa tanda kutip):

[DAYS] = Max. age of the files in days, e.g. “10”
[PATH] = Path to search for old files and empty folders, e.g. “C:\Backup\”
[FILE-PATTERN] = Pattern that matches files to delete, e.g. “*.bkp”

Script telah berhasil diuji di bawah Windows 7 dan Windows Server 2003.

0
sathish anish