긴 이름 형식으로 % ~ dp0을 얻는 방법


1

Windows 10에서 다음 폴더를 만들었습니다.

C:\BigLongFolderName

위 폴더 내에서 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴에서 "관리자 권한으로 실행"을 사용하여 Windows 탐색기에서 다음 test.bat를 실행하면 8.3 폴더 이름이 단축됩니다.

test.bat

echo "%~dp0"
echo %~dp0

산출:

C:\windows\system32>echo "C:\BIGLON~1\"
"C:\BIGLON~1\"

C:\windows\system32>echo C:\BIGLON~1\
C:\BIGLON~1\

"관리자 권한으로 실행"을 사용할 때 Windows 10에서 긴 폴더 이름을 얻으려면 어떻게합니까?

보고 싶은 결과는 C:\BigLongFolderName\

말 그대로 컴퓨터에 C : \ BigLongFolderName이라는 폴더가 있습니다.

"관리자 권한 으로 실행"대신 두 번 클릭하여 동일한 test.bat 를 실행 C:\BigLongFolderName하면 예상대로 전체 경로가 표시됩니다. "관리자 권한으로 실행"이 긴 경로를 제공하지 않는 이유는 무엇입니까?

이 질문을 Stackoverflow에서 "프로그래밍 질문이 아닙니다"로 옮겼습니다.

다음 게시물은 기본적으로 긴 이름 형식을 가져야하며 실제로 내 동료 중 2 명은 그렇게해야한다고 제안합니다.

https://stackoverflow.com/questions/15567809/batch-extract-path-and-filename-from-a-variable

8.3 이름을 긴 이름으로 변환하고 싶지 않습니다. 다른 사람들이 얻는 것과 동일하게 긴 이름을 반환하고 싶습니다.


C : \ BIGLON ~ 1 \라는 폴더가 있다는 것을 이해하지 않습니까? 폴더의 이름은 SFN (짧은 파일 이름)과 LFN (긴 파일 이름)입니다. 그것들은 모두 같은 폴더에 유효한 이름입니다.
TOOGAM

이상하다. 나를 위해 올바르게 작동합니다. 몇 가지 참고 사항 ... Windows 탐색기에서이를 실행한다고합니다. 당신이 할 경우, 당신은 필요가 없습니다 pausetest.bat, 당신은 검은 화면이 매우 빠르게 사라 볼 수 있습니다. 결과를 복사하여 붙여 넣기에 충분하지 않습니다. 내가 사용 pause하고있어 C:\BigLongFolderName두 번. 나는 또한 이것을 실행 cmd.exe했고 같은 결과를 얻었다. 그러나이 명령을 실행 command.com하면 짧은 이름 ( command.comDOS 프로그램의 이전 16 비트 명령 행)이 표시됩니다. (의 차이에주의 cmd.exe하고 command.com)

또한 ... 직접 실행하면 C:\BIGLON~18.3 폴더 이름이 항상 짧습니다.
Rik

@TOOGAM 예, 짧은 이름과 긴 이름이 같은 폴더라는 것을 알고 있습니다. 버전 번호가 blahblahblah1.0, blahblahblah1.1 등인 모든 다른 폴더에 하루에 여러 번 논리 드라이브 (예 : J :)를 여러 개의 폴더에 저장하고 현재 어느 폴더에 있는지 확인하고 싶다고 상상해보십시오. 나는 보통 'subst'를 입력하면 알려줍니다. 8.3 형식으로는 말할 수 없습니다.
SparkyNZ

1
8.3 filenames비활성화 한 다음 폴더의 이름을 바꾸어 새로운 디렉토리 항목을 얻도록 (8.3 중복 포인터없이 )이 문제를 해결하거나 유용한 오류 메시지가 표시 될 수 있습니다 . 시도하기 전에 레지스트리를 백업해야합니다.
jpaugh

답변:


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