짧은 이름 (8dot3) 생성을 강제하는 방법은 무엇입니까?


9

Windows Windows 축약 형 이름에 문제가 있습니다. "프로그램 파일"및 "프로그램 파일 (x86)"에 대해 짧은 이름이 생성되지 않는 경우가 있습니다.

짧은 이름 생성이 활성화되어 fsutil behavior query disable8dot3 C:시스템 전체 설정이 2(볼륨 당)이고 로컬 값이 0(8dot3 이름 생성 ) 임을 알려줍니다 .

대략 다음과 같아야합니다 (독일어 32 비트 복사본 임).

C:\>dir /a /x

 Verzeichnis von C:\

21.12.2011  00:17    <DIR>                       $Recycle.Bin
14.07.2009  05:53    <VERBINDUNG>   DOCUME~1     Documents and Settings [C:\Users]
09.01.2011  15:35    <VERBINDUNG>   DOKUME~1     Dokumente und Einstellungen [C:Users]
27.11.2013  15:11     2.147.016.704              pagefile.sys
14.07.2009  03:37    <DIR>                       PerfLogs
26.11.2013  17:31    <DIR>          PROGRA~1     Program Files
08.11.2013  21:58    <DIR>          PROGRA~2     ProgramData
09.01.2011  15:35    <VERBINDUNG>   PROGRA~3     Programme [C:\Program Files]
09.01.2011  15:35    <DIR>                       Recovery
26.11.2013  17:40    <DIR>          SYSTEM~1     System Volume Information
23.01.2011  15:00    <DIR>                       Temp
11.01.2011  20:56    <DIR>                       Users
08.11.2013  14:53    <DIR>                       Windows

그러나 다른 컴퓨터 (64 비트 사본)에서는 C :> dir / a / x와 같습니다.

 Verzeichnis von C:\

21.12.2011  00:17    <DIR>                       $Recycle.Bin
14.07.2009  05:53    <VERBINDUNG>   DOCUME~1     Documents and Settings [C:\Users]
09.01.2011  15:35    <VERBINDUNG>   DOKUME~1     Dokumente und Einstellungen [C:Users]
27.11.2013  15:11     2.147.016.704              pagefile.sys
14.07.2009  03:37    <DIR>                       PerfLogs
26.11.2013  17:31    <DIR>                       Program Files
26.11.2013  17:31    <DIR>                       Program Files (x86)
08.11.2013  21:58    <DIR>                       ProgramData
09.01.2011  15:35    <DIR>                       Recovery
26.11.2013  17:40    <DIR>          SYSTEM~1     System Volume Information
23.01.2011  15:00    <DIR>                       Temp
11.01.2011  20:56    <DIR>                       Users
08.11.2013  14:53    <DIR>                       Windows

알다시피, 프로그램 폴더의 짧은 이름이 없습니다.

문제는 이제 몇 가지 오래된 스크립트의 짧은 이름이 필요하기 때문에 생성 방법입니다. 나는 노력했지만 fsutil file setshortname "Program Files" "PROGRA~1", 이것은 단지 나를 준다 Access denied..


Windows가 짧은 이름을 다시 생성하는 방법을 아는 유일한 방법은 디렉토리를 복사하고 원본을 삭제하는 것입니다. 물론 그것은 작동하지 않을 것 Program Files입니다. 스크립트를 조정할 수 없습니까? 또한 스크립트가 Program Files-directory를 항상 생각하지 않기를 바랍니다. PROGRA~1그 경우 짧은 이름이 항상 같지 않기 때문에 스크립트가 심각한 문제로 결국 실행될 것입니다. 또한 스크립트를 짧은 이름 대신 긴 이름 (첫 번째 이름이 아닌)으로 업그레이드하는 데 도움을 요청할 수도 있습니다 (가능한 경우).
Rik

나는 짧은 이름의 문제를 알고 있으며 그 스크립트를 직접 쓰지 않을 것입니다. 나는 항상 이것을 위해 env vars를 사용할 것 %programfiles%입니다. 이름 바꾸기가 실제로 작동하지 않습니다. 어쩌면 내가 오프라인에서 이것을 할 수 있습니까? 해결 방법이 될 수 있습니다.
pgampe

관리자 권한으로 명령을 실행하려고 했습니까? 기존 디렉토리의 8.3 이름 만들기
phuclv

확실한. 그것은 작동하지 않았다.
pgampe

답변:


5

내 의견에서 말했듯이 ... Windows가 짧은 이름을 다시 생성하는 방법을 아는 유일한 방법은 디렉토리를 복사하고 원본을 삭제하는 것입니다. "프로그램 파일"디렉토리에는 사용할 수 없습니다.

긴 파일 이름과 폴더 이름을 사용하도록 스크립트를 변경하는 것이 가장 좋습니다. 스크립트가 사용 PROGRA~1하는 경우 드라이브가 복제 된 디렉토리와 같은 방식으로 드라이브가 복제 된 설치에 문제가 발생합니다. 예를 들어 ProgramData디스크에 먼저 복사 된 경우 이름이 지정 PROGRA~1되고 Program Files이름이 지정 PROGRA~2됩니다.

스크립트를 계속 작동시키는 옵션이 있습니다 :

당신은 만들 수 디렉토리 접합을 에서 PROGRA~1C:\Program Files. 그렇게하면 스크립트가 계속 작동하며 변경할 시간이 있습니다.

mklink /J "C:\PROGRA~1" "C:\Program Files"

출력 mklink /?:

Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.

디렉토리 점프를 사용하는 것이 좋습니다 :)
pgampe

mklink영구적으로 변경 되었거나 실행중인 배치 스크립트에서만 작동합니까? 죄송합니다. symlinks 및 junction에 대한 정보가 충분하지 않습니다.
Alireza Mohamadi

@AlirezaMohamadi 변경 사항 mklink은 영구적입니다. 처럼 mkdir.
Rik

9

프로그램 파일의 짧은 이름 (8dot3)을 정의하려면 다음을 수행하십시오.

  1. 컴퓨터를 다시 시작
  2. cmd 프롬프트로 안전 모드에서 부팅을 시작할 때 (내 컴퓨터의 F8)
  3. 로그인
  4. cmd 프롬프트에서 다음 cmd를 입력하십시오.

    fsutil 8dot3name query
    fsutil behavior set disable8dot3 0
    fsutil file setshortname "Program Files" PROGRA~1
    dir /X
    

이제 프로그램 파일에 대해 짧은 이름이 정의되어 있어야합니다. 원하는 경우 8dot3name 동작을 쿼리 cmd에서 반환 한 원래 설정으로 다시 설정하십시오.


2
FWIW-이 작업을 위해 컴퓨터를 재부팅 할 필요가 없었습니다. 또한 다른 드라이브에서 8.3을 선택적으로 활성화 / 비활성화 할 수 있습니다. 이러한 모든 설정의 레지스트리 위치는 HKLM : \ System \ CurrentControlSet \ Control \ FileSystem \ Ntfs *입니다. 참조 support.microsoft.com/en-us/kb/121007
Coruscate5

그래, 난 그냥 내가 어디에 체재하고했다 :
마이크 Mounier에게
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.