내 문서 폴더(예: d:\My Documents)에 설치한 C++ 컴파일러에 액세스해야 하는 프로그램이 있습니다.
프로그램은 경로의 공백을 처리할 수 없으며 경로가 이미 큰따옴표로 묶여 있습니다. dir /x
및 를 사용하여 짧은 이름을 찾으려고 노력했습니다 for %I in (.) do echo %~sI
. 이는 내 문서의 전체 이름을 반환합니다. 저도 시도해 보았지만 %userprofile%\documents
프로그램이 이를 인식하지 못합니다.
이 명령을 사용하여 이 폴더의 짧은 이름을 얻을 수 없는 이유는 무엇입니까? 짧은 이름이나 잘린 부분을 얻을 수 있는 다른 방법이 있나요?
답변1
링크나 바로가기를 보고 있을 수도 있습니다.
"내 문서"의 기본 위치는 다음과 같습니다.
C:\Users\%USERNAME%\Documents
따라서 %USERNAME%이 "myname"인 경우 다음을 참조하십시오.
C:\Users\myname\Documents
DOS 8.3 파일 이름이 필요한 오래된 command.com 프로그램을 사용하고 있는 것 같습니다. 이 경우 처음 6자를 가져와서 첫 번째 항목에 "~1"을 추가합니다. 처음 6자를 동일하게 공유하는 두 개의 항목이 있는 경우 다음 항목은 "~2"로 끝나게 됩니다. 확실히 하려면 "dir /x"를 실행하여 각 폴더에 어떤 짧은 이름이 할당되었는지 확인할 수 있습니다.
마지막 예에서는 이 형식의 긴 사용자 이름이 어떻게 보이는지 보여 드리겠습니다. 예제 사용자 이름은 "longusername"입니다.
C:\Users\LONGUS~1\DOCUME~1
자신의 사용자 이름으로 이 패턴을 따르세요.
"내 문서"가 기본 위치에 없거나 동적으로 위치를 찾으려면 다음 레지스트리 위치를 확인하세요.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
답변2
dir /x
파일과 폴더가 있는 경우 짧은 파일 이름이 표시됩니다. 긴 이름이 8.3 문자 형식보다 큰 경우 하나가 존재합니다.
dir /x
예를 들어, 다음은 내 사용자 프로필 폴더에서 사용하는 예입니다 .
01/02/2018 05:35 PM <DIR> .
01/02/2018 05:35 PM <DIR> ..
10/16/2017 09:41 AM <DIR> ASDM~1 .asdm
11/01/2017 01:01 PM <DIR> GIMP-2~1.8 .gimp-2.8
11/20/2017 05:26 PM <DIR> NETWOR~1 .networkassistant
12/15/2016 09:54 AM <DIR> THUMBN~1 .thumbnails
11/16/2017 09:48 PM <DIR> Contacts
07/17/2017 02:23 PM <DIR> DOCUME~1 Documents
01/03/2018 01:07 PM <DIR> DOWNLO~1 Downloads
03/14/2017 02:43 PM <DIR> GNS3
12/19/2017 01:10 PM <DIR> GOOGLE~1 Google Drive
11/16/2017 09:48 PM <DIR> Links
06/22/2017 07:20 AM <DIR> OneDrive
짧은 이름은 긴 이름 옆에 표시됩니다.
또한 이름 단축 표준은 공백을 제거하고, 이름을 6자로 단축하고 ~1을 추가하고, 모든 문자를 대문자로 하고, 파일 확장자의 처음 3자를 추가하는 것입니다. 충돌이 있으면 ~2가 대신 추가됩니다.
D:\My Documents
문서 폴더가 에 저장되어 있고 충돌하는 다른 이름이 없다고 가정할 경우 단축 이름은 입니다 D:\MYDOCU~1
.
긴 파일 이름을 사용할 수 없는 것과 같은 이유로 %userprofile%을 사용할 수 없습니다. 프로그램은 단순히 환경 변수를 이해하지 못합니다. 그리고 단축 버전도 사용하지 않습니다.