와일드카드를 사용하여 이름에 "- copy"가 있는 파일을 어떻게 삭제합니까?

와일드카드를 사용하여 이름에 "- copy"가 있는 파일을 어떻게 삭제합니까?

문제가 있는 것 같습니다.이름에 지정된 텍스트가 포함된 파일을 삭제하는 방법은 무엇입니까?내가 삭제하고 싶지 않은 것을 삭제합니다.

추가 내부 하드 드라이브를 설치하고 다음 지침에 따라 OneDrive 폴더를 이동한 후 OneDrive에 문제가 발생했습니다.마이크로소프트 지원, 내가 뭘 잘못했는지는 모르겠지만 이제 모든 파일을 새 하드 드라이브에 복사했고 OneDrive는 각 - copy파일 이름 끝에 확장명 앞에 있는 각 파일의 복제본과 동기화됩니다. 이는 수천 개의 파일에 대한 기가바이트 규모의 데이터입니다.

Powershell이나 cmd.exe에서 사용하면 삭제되는 내용을 보면 *- copy.*, 제가 만든 파일(copy.bat)이 삭제되는 것 같은데, 그 파일을 유지하고 싶습니다.

- copy와일드카드를 사용하여 파일 이름 끝에 있는 모든 항목을 삭제하고 copy.bat와 같은 파일을 보호하려면 어떻게 해야 합니까 ?

답변1

현재 무슨 일이 일어나고 있는지는 공백으로 구분된 두 개의 인수인 및 *- copy.*로 구문 분석되고 있다는 것입니다 . 이것을 보면 두 번째 파일이 파일과 일치한다는 것을 쉽게 알 수 있습니다 .*-copy.*copy.bat

해결 방법은 불변 부분을 큰따옴표로 묶는 것입니다(구체적으로 공백이 큰따옴표 안에 있는지 확인) *"- copy".*.

DIR *"- copy".*

Get-ChildItem *"- copy".*

*이것은 Windows이므로 Powershell/CMD 도구가 아닌 명령으로 구문 분석되므로 실제로 너무 인용하여 벗어날 수 있습니다 .

DIR "*- copy.*"

Get-ChildItem "*- copy.*"

여담이지만, UNIX/Linux 기반 시스템(Mac 포함)을 사용할 의도가 있는 경우 와일드카드를 인용하는 습관을 들이지 말고 패턴으로 작동할 것이라고 기대하지 마십시오. t: 문자 그대로 별표로 구문 분석됩니다. 내 첫 번째 제안은 모든 곳에서 작동합니다. 두 번째 제안은 Windows에만 해당됩니다.

답변2

해당 .bat파일은 삭제되는 파일과 동일한 폴더에 있을 필요는 없습니다. 를 실행하여 다른 폴더에서 실행할 수 있습니다 \path\copy.bat.

외에도 더 많은 파일이 영향을 받는 경우 을 copy.bat실행하기 전에 해당 파일을 다른 곳에 복사해야 합니다 copy.bat.

PowerShell에서는 CMD에서 사용할 수 있는 기본 정규 표현식보다 더 정교한 정규 표현식을 사용할 수도 있습니다. 그런 다음 이름 지정 규칙을 더 잘 정의할 수 있는 경우 더 적은 수의 파일을 포함하도록 정규식을 구체화할 수 있습니다.

답변3

유용한 무료 도구인 대량 이름 바꾸기 유틸리티를 살펴보세요.https://www.bulkrenameutility.co.uk

대량 이름 바꾸기 작업을 반복적으로 검색하고 미리 볼 수 있으며 미리 보기가 있으므로 매우 유용합니다. 주의 - 먼저 백업을 수행해야 합니다. 이는 강력한 도구이며 커밋 후 실행 취소 옵션이 없습니다.

관련 정보