cmd.exe :“del * .txt”도 * .txt1 등을 제거합니다. [중복]


8

가능한 중복 :
WinXP dir 명령 : 3과 4 문자 확장자는 동일합니까?

오랫동안 cmd.exe의 이상한 동작 (최소한 WinXP 및 Windows7)에 짜증이났습니다. 이와 같은 명령 del *.txt*.txt1파일 도 제거 합니다 ( '.txt'다음에 나오는 문자 수만큼). 이것은 잘 알려진 버그입니까?

답변:


8

가끔 알려진 것으로 알려진?

동작에 대한 설명은 여기 에 있으며 가능한 해결 방법이 있습니다.

요약 : NTFS는 "새롭지 않은"긴 파일 이름을 처리 할 수없는 오래된 파일과의 호환성을 위해 짧은 (8.3) 파일 이름을 처리하는 방식에서 비롯됩니다. dir /x짧은 파일 이름을 보는 데 사용할 수 있습니다.

C:\>dir /x *~*
 ...
02/25/2011  08:18 AM    <DIR>          DOCUME~1     Documents and Settings
05/28/2011  12:02 AM    <DIR>          PROGRA~1     Program Files
 ...

3 자보다 긴 확장자는 짧은 파일 이름으로 인해 잘립니다. 그래서 .txt1, .txtxtxtxt, .txt_file, 등, 모두가 .txt.


6

확장명이 4자를 초과하는 파일 (및 다른 규칙도 적용됨)의 짧은 이름을 얻습니다. 예를 들어 "foo.txt1"은 "foo ~ 1.txt"라는 짧은 이름을 갖습니다. DEL( DIR대부분의 다른 cmd.exe내장 명령 과 마찬가지로 ) 축약 형에서도 작동합니다. 관련 주제에 대한 토론은 여기를 참조하십시오 : http://blogs.msdn.com/b/oldnewthing/archive/2005/07/20/440918.aspx


내 것보다 더 권위있는 링크를 위해 +1
Jim Davis

2

이것이 FAT / VFAT 파일 시스템에 있습니까? 그렇다면 8.3 스키마에 맞지 않는 이름을 나타내는 데 사용되는 해커에게 물린 것입니다. DIR맹 글링 된 짧은 이름을 표시 하는 옵션이 있는데, 실제 파일 이름으로 시작하지만 ~확장자 앞에 숫자와 숫자가 있고 확장자는 3 자로 제한됩니다. (예 : C:\Program Files일반적으로로 번역됩니다 C:\PROGRA~1.) 와일드 카드가 예기치 않게이 이름과 일치 할 수 있습니다. 이것은 NTFS 또는 네트워크 공유에서 발생 해서는 안됩니다 . 도스가 아직 죽지 않았다는 것을 제외하고는 ...


2

Forfiles해결 방법으로 명령을 사용할 수 있습니다.

예 :

Forfiles  -s -m *.txt -c "cmd /C del /q @path"

txt결말 만 일치합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.