cmd에 와일드 카드 버그가 있습니까? [복제]


3

이 질문에는 이미 답변이 있습니다.

폴더의 파일 :

a.j
ab.jp
abc.jpg
abcd.jpeg

dir 명령 결과 :

Command       Result (Files shown)
----------    --------------------
dir ?.*       a.j
dir ??.*      a.j, ab.jp
dir ???.*     a.j, ab.jp, abc.jpg
dir ????.*    a.j, ab.jp, abc.jpg, abcd.jpeg

그래서 우리는 단일 ?문자 "0 또는 1 문자"를 볼 수 있습니다 .

더 많은 dir명령 결과 :

Command       Result (Files shown)
----------    --------------------
dir *.?       a.j
dir *.??      a.j, ab.jp
dir *.???     a.j, ab.jp, abc.jpg, abcd.jpeg --> What is this?!
dir *.????    a.j, ab.jp, abc.jpg, abcd.jpeg

세 번째 명령에서 왜 ???표시 jpeg됩니까? 설명 할 수 있습니까? 이 버그는 cmd에 있습니까?


3
자기 자신에게 물어봐야합니다. 더 가능성이 높습니다. 기능이 처음 도입 된 이후로 기능이 변경되지 않았거나 자체적으로 명령의 작동 방식을 잘못 이해하고있는 프로그램의 버그?
Ramhound

@Ramhound : 이것은 버그가 아닐 수도 있지만 cmd에 버그가 없음을 의미하지는 않습니까? :) 모든 종류의 이상한 경우와 문서화되지 않은 행동이 있습니다. 오래되었지만 괜찮아 Win10까지 거의 손대지 않아 몇 가지 새로운 외관 기능이 추가되었지만 버그가 수정되었다고 생각하지 않습니다.
카란

@Karan 나는 명령 프롬프트가 연령대에 변경되지 않았 음을 고려하여 기능이 어떻게 작동하는지 이해하지 못한다고 제안한 버그가 있다고 결코 말하지 않았다
Ramhound

답변:


7

세 개의 물음표가 짧은 버전의 파일 이름 확장자와 일치하기 때문에 발생합니다. 용도

dir /x

짧은 버전의 파일 이름을 표시하고 작업합니다.


1
이것은 스누피가 쓴 것을 사용하여 확인할 수있는 올바른 이유 인 것 같습니다.
Karan

1
그게 답이라고 확신합니다. 나는 한 번 입력 dir하고 1이름 끝에 제거하고 싶었던 두 개의 파일이 있다는 것을 알았 으므로 del ???????1.*긴 이름을 가진 대부분의 파일도 삭제되었음을 알았습니다 . 다행스럽게도 나는 많은 백업을 유지하지만 한 번만 실수하는 것은 실수입니다.
AFH

2

세 자보다 긴 확장명 문제와 관련하여 : 이것은 짧은 파일 이름이 생성되는 방식으로 인해 발생합니다. Win95TruncatedExtensions레지스트리에서 설정하여이 문제를 해결할 수 있습니다 .

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"Win95TruncatedExtensions"=dword:00000000

NTFS 및 FAT에서 8.3 명명 규칙을 사용하여 새 파일의 파일 이름을 생성할지 여부를 지정합니다.

이 항목의 값을 1로 설정해도 기존 파일 이름 확장자는 변경되지 않으며 찾기, 파일 관리자 또는 Windows 탐색기에서 이러한 확장자가 표시되거나 관리되는 방식도 변경되지 않습니다. 그러나 NTFS 및 FAT는 새 파일의 짧은 이름을 생성하고 파일 이름 확장명의 세 번째 문자를 자릅니다.

기본값은 1

여기에 이미지 설명을 입력하십시오

그러나 이것은 새로 생성되거나 복사 된 파일에만 영향을 미칩니다.

(하드 디스크의 모든 파일을 복사 할 수 있습니다. Windows 시스템을 설치할 때 첫 번째 조치 중 하나로이 레지스트리 설정을 수행해야합니다.)


1

명령 프롬프트는 짧은 파일 이름 시스템을 사용합니다. 즉, 파일이 포인트 이전에 8자를 초과하면 처음 6 개가 + ~ 1로 사용됩니다. 에서 뒤에 4 자 이상을 사용하는 경우에도 마찬가지입니다. 그런 다음 확장자의 처음 3자를 사용하고 파일 이름을 다르게 지정합니다 (처음 6 + ~ 1). 따라서 .jpeg파일이 명령 프롬프트에 표시되므로 ??????~1.jpe일치합니다.*.???

dir /x파일 이름이 짧은 파일을 보는 데 사용 하십시오.


dir / x는 .JPEG를 .JPE로 표시하므로 .J ~ 1로 표시되었다는 귀하의 주장은 틀린 것 같습니다.
Karan

@Karan 아, 맞아. 이름을 ~ 1로 변경하고 확장의 처음 3을 사용합니다. Tnx. 수정하겠습니다.
LPChip
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.