Windows 명령 프롬프트를 사용하여 빈 폴더를 삭제하는 방법은 무엇입니까?
Windows 명령 프롬프트를 사용하여 내 응용 프로그램 폴더에서 모든 빈 폴더를 삭제해야합니까?
그런 박쥐 파일을 어떻게 만들 수 있습니까?
제발 도와주세요.
for /f "usebackq" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"
출처 : http://blogs.msdn.com/b/oldnewthing/archive/2008/04/17/8399914.aspx
물론이 명령을 수행하기 전에 삭제하지 않고 먼저 테스트 할 것입니다. 또한 다음은 공백이있는 폴더를 포함하는 주석의 수정 된 버전입니다.
for /f "usebackq delims=" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"
추신 : 블로그 게시물에 도움이 될 수있는 댓글이 더 있으므로 이것을 시도하기 전에 반드시 읽어보십시오.
ROBOCOPY를 사용할 수 있습니다. 매우 간단하며 큰 계층 구조 내의 빈 폴더를 삭제하는 데 사용할 수도 있습니다.
ROBOCOPY folder1 folder1 /S /MOVE
folder1
다른 (필수) 파일을 다른 폴더로 이동하는 대신 빈 폴더 만 삭제하면되므로 원본과 대상은 모두 입니다. /S
옵션은 빈 폴더 복사 (위의 경우 이동)를 건너 뛰는 것입니다. 파일이 동일한 드라이브 내에서 이동되기 때문에 더 빠릅니다.
더 간단한 방법은 xcopy를 수행하여 / s 스위치를 사용하여 전체 디렉토리 구조의 복사본을 만드는 것입니다. help for / s는 빈 디렉토리를 제외한 디렉토리와 하위 디렉토리를 복사합니다.
xcopy dirA dirB /S
여기서 dirA는 빈 폴더가있는 소스입니다. DirB는 빈 폴더가없는 복사본입니다.
usebackq가 필요하지 않습니다.
FOR /F delims^= %%A IN ('DIR/AD/B/S^|SORT/R') DO RD "%%A"
동일한 참조 페이지에서 부식 된 답변에 추가하는 것은 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
또는 더 간결하게
gci -R . | where { $_.PSISContainer -and @( $_ | gci ).Count -eq 0 } | ri
크레딧은 게시 작성자에게 전달됩니다.
명령 줄에서 : for / R / D % 1 in (*) do rd "% 1"
배치 파일에서 / R / D %% 1 in (*) do rd "%% 1"
문서화되어 있는지는 모르겠지만 W2K, XP 및 Win 7에서 작동합니다. 그리고 항상 작동하는지는 모르겠지만 실수로 파일을 삭제하지는 않습니다.
이것은 위의 hybird입니다. X 일보다 오래된 모든 파일을 제거하고 주어진 경로에 대해 빈 폴더를 제거합니다. 사용하려면 요일, 폴더 경로 및 드라이브를 설정하십시오.
@echo off
SETLOCAL
set days=30
set folderpath=E:\TEST\
set drive=E:
::Delete files
forfiles -p %folderpath% -s -d -%days% -c "cmd /c del /q @path "
::Delete folders
cd %folderpath%
%drive%
for /f "usebackq delims=" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d"`
Windows 용 UNIX 인터프리터 (Cygwin 또는 Git Bash)를 설치하고 cmd를 실행하십시오.
/ path / to / directory 찾기 -empty -type d
To find them
/ path / to / directory 찾기 -empty -type d -delete
To delete them
(실제로 Windows cmd 프롬프트를 사용하지는 않지만 실행하기 쉽고 몇 초가 걸렸습니다)
@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
잘 작동합니다. 이것은 오래된 파일을 삭제하고 빈 디렉토리를 재귀 적으로 제거하는 가장 좋은 방법입니다. 다음 .bat 파일은
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"
The placeholders needs to be replaced as follows (without the quotation marks):
[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”
The script has been successfully tested under Windows 7 and Windows Server 2003.
well, just a quick and dirty suggestion for simple 1-level directory structure without spaces, [edit] and for directories containing only ONE type of files that I found useful (at some point from http://www.pcreview.co.uk/forums/can-check-if-folder-empty-bat-file-t1468868.html):
for /f %a in ('dir /ad/b') do if not exist %a\*.xml echo %a Empty
/ad : shows only directory entries
/b : use bare format (just names)
[edit] using plain asterisk to check for ANY file (%a\* above) won't work, thanks for correction
therefore, deleting would be:
for /f %a in ('dir /ad/b') do if not exist %a\*.xml rmdir %a
참고URL : https://stackoverflow.com/questions/7831286/how-to-delete-empty-folders-using-windows-command-prompt
'IT박스' 카테고리의 다른 글
Arduino를 사용하여 serial.read ()를 사용 가능한 문자열로 변환 하시겠습니까? (0) | 2020.11.06 |
---|---|
Android에서 기본 경고 대화 상자의 너비와 높이를 제어하는 방법은 무엇입니까? (0) | 2020.11.06 |
레일의 정의되지 않은 메소드`devise_for ' (0) | 2020.11.06 |
wcf 응용 프로그램의 작업 경로를 얻는 방법은 무엇입니까? (0) | 2020.11.06 |
런타임에 iPhone 앱의 제품 이름을 얻습니까? (0) | 2020.11.06 |