Mam problem z krótkimi nazwami okien systemu Windows. Czasami wydaje się, że krótkie nazwy nie są generowane dla „Program Files” i „Program Files (x86)”.
Sprawdziłem, czy jest włączone generowanie krótkich nazw, fsutil behavior query disable8dot3 C:
co mówi mi, że ustawienie systemowe to 2
(na wolumin), a wartość lokalna to 0
(utwórz nazwy 8dot3).
Powinno to wyglądać mniej więcej tak (zwróć uwagę, że jest to niemiecka 32-bitowa kopia):
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
Jednak na innym komputerze (kopia 64-bitowa) wygląda to jak 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
Jak można zauważyć, brakuje krótkich nazw folderów programu.
Pytanie brzmi teraz, jak je wygenerować, ponieważ potrzebuję tych krótkich nazw dla kilku starszych skryptów. Próbowałem z fsutil file setshortname "Program Files" "PROGRA~1"
, ale to po prostu daje mi Access denied.
.
źródło
Program Files
. Nie można dostosować skryptów? Mam również nadzieję, że skrypt nie myśli, żeProgram Files
katalog jest zawsze taki,PROGRA~1
ponieważ w takim przypadku skrypt będzie działał w poważnych kłopotach, ponieważ krótkie nazwy nie zawsze są takie same. Możesz również poprosić o pomoc w aktualizacji skryptów do długiej nazwy (zamiast krótkiej nazwy) findfirst itp. (Jeśli w ogóle możliwe).%programfiles%
). Zmiana nazwy rzeczywiście nie działa. Może mogę to zrobić offline? Może to być obejście.Odpowiedzi:
Tak jak powiedziałem w moim komentarzu ... Jedynym sposobem, w jaki wiem, jak Windows zamierza ponownie wygenerować krótką nazwę, jest skopiowanie katalogu i usunięcie oryginału. (nie można tego zrobić w katalogu „Program Files”).
Najlepiej byłoby zmienić skrypt, aby używał długich nazw plików i folderów. Jeśli skrypt użyje
PROGRA~1
go, będzie miał kłopoty z instalacjami, w których dysk został sklonowany w sposób, w jaki skopiowano katalogi. Na przykład, jeśliProgramData
zostanie skopiowany najpierw na dysk, zostanie nazwanyPROGRA~1
iProgram Files
będzie nazwanyPROGRA~2
.Istnieje opcja, aby skrypty działały na razie :
Możesz utworzyć połączenie katalogu od
PROGRA~1
doC:\Program Files
. W ten sposób skrypty działają i masz czas na ich zmianę.Wyjście
mklink /?
:źródło
mklink
stałe, czy działają po prostu w uruchamianym skrypcie wsadowym? Niestety nie mam wystarczających informacji na temat dowiązań symbolicznych i skrzyżowań.mklink
są trwałe. Podobnie jakmkdir
.Aby zdefiniować nazwy skrócone (8dot3) dla plików programu, wykonaj następujące czynności:
z wiersza polecenia cmd wprowadź następujące polecenia cmds
Powinieneś teraz zobaczyć krótką nazwę zdefiniowaną dla plików programu. Jeśli chcesz, ustaw zachowanie 8dot3name z powrotem na oryginalne ustawienie zwrócone przez zapytanie cmd.
źródło