Windows 단일 문자 와일드 카드가 예상보다 많은 것을 반환합니다.


3

파일 이름이 8 문자로 구성된 파일의 디렉토리 목록을 만들고 Windows 명령 쉘에서 파일 확장자와 마침표를 사용하려고합니다. 와일드 카드 패턴은 "????????. TIF"입니다. 이것은 파일 이름의 확장 전 부분의 길이에 관계없이 ".TIF"확장자를 가진 모든 파일 이름을 반환합니다. 예:

DIR A * .TIF

ABCDEFGH.TIF 및 ABCDEFGHIJ.TIF를 반환합니다.

dir ????????. TIF

또한 두 파일을 반환합니다. 첫 번째 패턴 만 반환 될 것으로 기대합니다. 패턴과 일치하는 두 패턴 중 하나입니다 (8 개의 단일 문자 뒤에 ".TIF"가옵니다).이 동작에 대한 설명은 무엇입니까?

모든 답장에 미리 감사드립니다.

답변:


7

나는 문제가 그것이라고 생각한다. ABCDEFGHIJ.TIF 있다 짧은 이름 같은 것의 ABCDEF~1.TIF 그것은 귀하의 패턴과 일치합니다.

사용하는 경우 DIR /X 짧은 이름이 보일 것입니다. 모든 파일의 8.3 파일 이름.

다음과 같이 시도해 볼 수 있습니다.

DIR /B | FINDSTR /R /I "^........\.TIF"

정규식 모드에서 FINDSTR을 사용하여 .TIF. FINDSTR에 대한 자세한 도움말은 FINDSTR /? 명령 행에서.


답장을 보내 주셔서 감사합니다. "DIR / X"를 사용하면 더 긴 이름과 함께 짧은 파일 이름이 출력됩니다. DIR 명령으로 짧은 파일 이름을 걸러내는 방법이 있습니까? 나는 "DIR /?"옵션으로 약속 한 것을 보지 못했다.
E Brown

나는 강제로 길을 모른다. DIR 긴 이름 만 일치 시켜서 FINDSTR 의 출력을 걸러 내기 DIR 대신에.
Dave Webb

감사. 나는 GNU Unix Utils를 설치하고 "grep"을 사용하여 비슷한 필터링을 할 예정이었습니다. "findstr"명령을 인식하지 못했지만, 당신의 방법은 내가했던 것을 잘 수행했다.
E Brown

2

이 문제를 해결하려면 승격 된 명령 프롬프트를 열고 다음을 입력하십시오.

fsutil 8dot3name set 1

짧은 파일 이름에서 제거 할 때까지 기존 파일은 여전히 ​​문제를 나타냅니다. 복사 / 작성하는 새 파일에는 문제가 없습니다. 짧은 파일 이름을 매스 스트립해야하는 경우 다음을 사용할 수 있습니다.

fsutil 8dot3name strip /s <directory>

이 문제는 Windows 7에서 긴 파일 이름 대신 와일드 카드의 짧은 파일 이름을 사용하는 것으로 나타납니다.


0

? 모든 것을 의미한다. 단일 캐릭터. ~함으로써 dir ????????.TIF 당신은 8 개의 문자와 .tif 확장 기간 동안 dir A*.tif 로 시작하는 모든 파일을 반환하는 것을 의미합니다. A 또는 'a'를 .tif 연장으로


답장을 보내 주셔서 감사합니다. 나는 그것을 알고있다. - 일러스트레이션 목적으로 두 파일을 보여주기 위해 "dir A * .TIF"를 포함시켰다. 내 필요는 8 자 및 확장자가 .tif 인 파일 만 나열하는 것입니다. ????????????????????????????????????????????????????????????????????????????????????? 이 패턴은 8 개의 단일 문자와 .tif 확장자를 지정하기 때문에 전자 만 반환 할 것으로 기대합니다.
E Brown
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.