Kısa isim (8dot3) oluşturmaya nasıl zorlanır?


9

Windows windows shortnames ile ilgili bir sorunum var. Bazen "Program Files" ve "Program Files (x86)" için kısa adlar oluşturulmamış gibi görünür.

fsutil behavior query disable8dot3 C:Sistem adı ayarının 2(birim başına) ve yerel değerin 0(8dot3 adları oluştur ) olduğunu söyleyen kısa ad oluşturma özelliğinin etkinleştirildiğini doğruladım .

Kabaca şöyle görünmelidir (bir Alman 32bit kopyası olduğuna dikkat edin):

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

Ancak başka bir makinede (64 bit kopya) 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

Fark etmiş olabileceğiniz gibi, program klasörleri için kısa adlar eksik.

Soru şimdi onları nasıl oluşturacağımızdır, çünkü birkaç eski komut dosyası için bu kısa isimlere ihtiyacım var. Ben denedim fsutil file setshortname "Program Files" "PROGRA~1", ama bu sadece bana veriyor Access denied..


Windows'un kısa adı nasıl yeniden oluşturacağını bilmenin tek yolu, dizini kopyalayıp orijinali silmektir. Tabii ki bu işe yaramayacak Program Files. Komut dosyalarını ayarlamak mümkün değil mi? Ayrıca, ben betik Program Files-dizini her zaman olduğunu düşünüyorum değil PROGRA~1çünkü bu durumda betiğiniz sonunda kısa isimler her zaman aynı değildir çünkü bazı ciddi sorunla çalışacaktır. Komut dosyalarının uzun adla (kısa ad yerine) findfirst vb.
Rik

Kısa isimlerle ilgili sorunların farkındayım ve bu senaryoları asla kendim yazmam. Ben her zaman bu ( %programfiles%) için env vars kullanırdım . Yeniden adlandırma gerçekten işe yaramıyor. Belki bunu çevrimdışı olarak yapabilirim? Bir çözüm olabilir.
pgampe

komutu yönetici olarak çalıştırmayı denediniz mi? Mevcut bir dizin için 8.3 isim oluşturun
phuclv

Elbette. İşe yaramadı.
pgampe

Yanıtlar:


5

Yorumumda söylediğim gibi ... Windows'un kısa adı nasıl yeniden oluşturacağını bilmenin tek yolu dizini kopyalamak ve orijinali silmek. ("Program Dosyaları" dizini için kullanılamaz.)

Komut dosyasını uzun dosya ve klasör adlarını kullanacak şekilde değiştirmek en iyisidir. Komut dosyası kullanırsa PROGRA~1, sürücünün kopyalandığı dizinleri bir şekilde kopyaladığı kurulumlarda sorun yaşar. Örneğin ProgramData, önce diske kopyalanırsa, adlandırılır PROGRA~1ve Program Filesadlandırılır PROGRA~2.

Komut dosyalarının şimdilik çalışmasını sağlama seçeneği vardır :

Bir oluşturabilir dizin kavşak gelen PROGRA~1etmek C:\Program Files. Bu şekilde komut dosyaları çalışmaya devam eder ve bunları değiştirmek için zamanınız olur.

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

Çıktı 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.

Bir dizin atlama kullanmak için iyi bir fikir :)
pgampe

Değişiklikler mklinkkalıcı mıdır yoksa sadece çalıştırılmakta olan toplu komut dosyasında çalışır mı? Üzgünüm semboller ve kavşaklar hakkında yeterli bilgim yok.
Alireza Mohamadi

@AlirezaMohamadi ile yapılan değişiklikler mklinkkalıcıdır. Aynen mkdir.
Rik

9

Program dosyaları için kısa adlar (8dot3) tanımlamak için aşağıdakileri yapın:

  1. Bilgisayarı yeniden başlat
  2. cmd istemiyle safemode önyükleme başladıktan sonra (bilgisayarımda F8)
  3. Oturum aç
  4. cmd isteminden aşağıdaki cmds'leri girin

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

Şimdi program dosyaları için tanımlanan kısa adı görmelisiniz. İsterseniz, 8dot3name davranışını cmd sorgusu tarafından döndürülen özgün ayara geri ayarlayın.


2
FWIW- Bunlardan herhangi biri için bilgisayarımı yeniden başlatmam gerekmiyordu. Ayrıca, farklı sürücülerde 8.3'i seçerek etkinleştirebilir / devre dışı bırakabilirsiniz. Tüm bu ayarların kayıt defteri konumu HKLM: \ System \ CurrentControlSet \ Control \ FileSystem \ Ntfs * şeklindedir. Bkz. Support.microsoft.com/en-us/kb/121007
Coruscate5

Evet, bulunduğum yerde kaldım ve yaptım:
Mike Mounier
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.