디렉토리를 스캔하고 (하위가 없음) 확장명을 가진 파일을 삭제하고 .avi
싶습니다.이 구문을 시도했지만 오류가 발생하지 않으며 파일이 삭제되지 않습니다. 이것은 내가 시도한 코드입니다
get-childitem 'C:\Users\ramrod\Desktop\Firefly' -include *.avi | foreach ($_) {remove-item $_.fullname}
.avi
폴더에서 모든 파일 을 삭제하려면 무엇을 변경해야 합니까?
답변
del *.<extension>
또는 별명 중 하나를 사용하십시오 (예 rm
: bash에 더 익숙한 경우).
따라서 현재 작업 디렉토리로 del *.avi
끝나는 모든 파일을 삭제 하는 것 .avi
입니다.
del <directory>\*.<extension>
다른 디렉토리에서 파일을 삭제하는 데 사용 합니다.
답변
디렉토리에서 Powershell 인스턴스를 여는 기본 방법을 가정하면 일반 버전은 다음과 같습니다.
Get-ChildItem *.avi | foreach { Remove-Item -Path $_.FullName }
디렉토리 특정 버전의 경우 :
Get-ChildItem -Path 'C:\Users\ramrod\Desktop\Firefly' *.avi | foreach { Remove-Item -Path $_.FullName }
에 추가 -Recurse
에 Get-ChildItem
모두 포함 된 폴더에 영향을 미칠 수 있습니다.
예:
Get-ChildItem *.avi -Recurse | foreach { Remove-Item -Path $_.FullName }
답변
Remove-Item
커맨드는 당신이 필요로하는 모든해야한다. avi 파일이 존재하는 루트 폴더를 전달하고 recurse
필터와 함께 플래그를 전달하십시오 .
Remove-Item 'C:\Users\ramrod\Desktop\Firefly\*' -recurse -Include *.avi
이것은 각각을 통해 파일을 찾고 Get-ChildItem
호출 하는 것보다 빠르게 실행되어야합니다 Remove-Item
.
-WhatIf
스위치를 추가하면 각 파일을 삭제하기 전에 메시지가 표시되므로 PowerShell에 익숙하지 않은 사람들에게 더 안전합니다.
답변
현재 디렉토리에 여러 개의 텍스트 파일이 있다고 가정하십시오.
dir * -include *.txt
및 dir *.txt
작업로 예상하지만 dir -include *.txt
아무것도 제공하지 않습니다. 그 이유는 스택 오버플로 에 잘 설명되어 있습니다.
수정 된 명령 :
dir 'C:\Users\ramrod\Desktop\Firefly\*.avi' | foreach {del $_}
답변
이것은 마침내 나를 위해 해냈습니다-위와 나다를 모두 시도했습니다.
get-childitem "<drive>:\<folder>" -recurse -force -include *.<ext> | remove-item -force
확실히 두 힘이 필요하지 않지만 그것이 작동하는 것이므로 내가 고수하고 있습니다.
답변
이 시도
Remove-Item "c:\temp\*.txt"