J'ai un problème avec les raccourcis windows windows. Parfois, les noms courts ne semblent pas être générés pour "Program Files" et "Program Files (x86)".
J'ai vérifié que la génération de noms courts est activée, fsutil behavior query disable8dot3 C:
ce qui m'indique que le paramètre à l'échelle du système est 2
(par volume) et que la valeur locale est 0
(créer des noms 8dot3).
Il devrait ressembler à peu près à ceci (notez qu'il s'agit d'une copie allemande de 32 bits):
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
Cependant sur une autre machine (copie 64 bits), cela ressemble à 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
Comme vous l'avez peut-être remarqué, les noms courts sont manquants pour les dossiers du programme.
La question est maintenant de savoir comment les générer, car j'ai besoin de ces noms courts pour quelques scripts plus anciens. J'ai essayé avec fsutil file setshortname "Program Files" "PROGRA~1"
, mais cela me donne juste Access denied.
.
la source
Program Files
. Il n'est pas possible d'ajuster les scripts? En outre, j'espère que le script ne pense pas que leProgram Files
répertoire est toujoursPROGRA~1
parce que si c'est le cas, votre script finira par avoir de sérieux problèmes parce que les noms courts ne sont pas toujours les mêmes. Vous pouvez également demander de l'aide pour mettre à niveau les scripts vers le nom long (au lieu du nom court) findfirst etc. (si possible).%programfiles%
). Renommer ne fonctionne en effet pas. Peut-être que je peux le faire hors ligne? Cela pourrait être une solution de rechange.Réponses:
Comme je l'ai dit dans mon commentaire ... La seule façon dont je sais comment Windows va recréer le nom court est de copier le répertoire et de supprimer l'original. (non réalisable pour le répertoire "Program Files".)
Il serait préférable de changer le script pour utiliser des noms de fichiers et de dossiers longs. Si le script l'utilise,
PROGRA~1
il aura des ennuis avec les installations où le lecteur a été cloné d'une manière où les répertoires ont été recopiés. Par exemple, siProgramData
est copié en premier sur le disque, il sera nomméPROGRA~1
etProgram Files
sera nomméPROGRA~2
.Il existe une option pour que les scripts fonctionnent pour le moment :
Vous pouvez créer une jonction d' annuaire de
PROGRA~1
àC:\Program Files
. De cette façon, les scripts continuent de fonctionner et vous avez le temps de les modifier.Sortie de
mklink /?
:la source
mklink
permanent ou fonctionnent-elles uniquement dans un script de commandes en cours d'exécution? Désolé, je n'ai pas assez d'informations sur les liens symboliques et les jonctions.mklink
sont permanentes. Tout commemkdir
.Pour définir des noms courts (8dot3) pour les fichiers programme, procédez comme suit:
à partir de l'invite cmd, entrez les cmds suivants
Vous devriez maintenant voir le nom abrégé défini pour les fichiers programme. Si vous le souhaitez, redéfinissez le comportement 8dot3name sur le paramètre d'origine qui a été renvoyé par la requête cmd.
la source