Ich habe ein Problem mit Windows Windows-Kurznamen. Manchmal scheinen die Kurznamen für "Programme" und "Programme (x86)" nicht generiert zu werden.
Ich habe überprüft, ob die Generierung von Kurznamen aktiviert ist, fsutil behavior query disable8dot3 C:
wodurch angegeben wird, dass die systemweite Einstellung 2
(pro Volume) und der lokale Wert 0
(8dot3-Namen erstellen) lautet.
Es sollte ungefähr so aussehen (beachten Sie, dass es sich um eine deutsche 32-Bit-Kopie handelt):
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
Auf einem anderen Computer (64-Bit-Kopie) sieht dies jedoch wie folgt aus: 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
Wie Sie vielleicht bemerkt haben, fehlen die Kurznamen für die Programmordner.
Die Frage ist nun, wie man sie generiert, weil ich diese Kurznamen für ein paar ältere Skripte brauche. Ich habe es versucht fsutil file setshortname "Program Files" "PROGRA~1"
, aber das gibt mir nur Access denied.
.
quelle
Program Files
. Es ist nicht möglich, die Skripte anzupassen? Ich hoffe auch, dass das Skript nicht denkt, dass dasProgram Files
-verzeichnis immer so ist,PROGRA~1
weil in diesem Fall Ihr Skript möglicherweise in ernsthaften Schwierigkeiten läuft, weil die Kurznamen nicht immer gleich sind. Sie können auch um Hilfe bitten, um die Skripte auf den Langnamen (anstelle des Kurznamens) findfirst usw. zu aktualisieren (falls überhaupt möglich).%programfiles%
). Das Umbenennen funktioniert in der Tat nicht. Vielleicht kann ich das offline machen? Könnte eine Problemumgehung sein.Antworten:
Wie ich in meinem Kommentar sagte ... Der einzige Weg, wie ich weiß, wie Windows den Kurznamen neu generieren wird, besteht darin, das Verzeichnis zu kopieren und das Original zu löschen. (Nicht möglich für das Verzeichnis "Programme".)
Es ist am besten, das Skript so zu ändern, dass lange Datei- und Ordnernamen verwendet werden. Wenn das Skript verwendet
PROGRA~1
, treten Probleme bei Installationen auf, bei denen das Laufwerk so geklont wurde, dass die Verzeichnisse zurückkopiert wurden. Wenn es beispielsweiseProgramData
zuerst auf die Festplatte kopiert wird, wird es benanntPROGRA~1
undProgram Files
benanntPROGRA~2
.Es gibt eine Option, um die Skripte vorerst funktionsfähig zu halten :
Sie können eine Verzeichnisverbindung von
PROGRA~1
bis erstellenC:\Program Files
. Auf diese Weise funktionieren die Skripte weiter und Sie haben Zeit, sie zu ändern.Ausgabe von
mklink /?
:quelle
mklink
permanent vorgenommen oder funktionieren sie nur in einem Batch-Skript, das ausgeführt wird? Entschuldigung, ich habe nicht genug Informationen über Symlinks und Junctions.mklink
sind dauerhaft. Genau wiemkdir
.Gehen Sie wie folgt vor, um Kurznamen (8dot3) für Programmdateien zu definieren:
Geben Sie an der Eingabeaufforderung cmd die folgenden cmds ein
Sie sollten nun den für Programmdateien definierten Kurznamen sehen. Wenn Sie möchten, setzen Sie das Verhalten von 8dot3name auf die ursprüngliche Einstellung zurück, die von der Abfrage cmd zurückgegeben wurde.
quelle