Tengo un problema con los nombres abreviados de Windows. A veces, los nombres cortos no parecen generarse para "Archivos de programa" y "Archivos de programa (x86)".
Verifiqué que la generación de nombres cortos está habilitada, lo fsutil behavior query disable8dot3 C:
que me dice que la configuración de todo el sistema es 2
(por volumen) y el valor local es 0
(crear 8dot3 nombres).
Debería verse más o menos así (tenga en cuenta que es una copia alemana 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
Sin embargo, en otra máquina (copia de 64 bits), esto se parece a 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
Como habrás notado, faltan los nombres cortos para las carpetas del programa.
La pregunta ahora es cómo generarlos, porque necesito esos nombres cortos para algunos scripts más antiguos. Lo intenté con fsutil file setshortname "Program Files" "PROGRA~1"
, pero esto solo me da Access denied.
.
fuente
Program Files
. ¿No es posible ajustar los scripts? Además, espero que el script no piense que elProgram Files
directorio siempre esPROGRA~1
porque si ese es el caso, su script se ejecutará en algún problema serio eventualmente porque los nombres cortos no siempre son los mismos. También puede pedir ayuda para actualizar los scripts al nombre largo (en lugar del nombre corto) findfirst, etc. (si es posible).%programfiles%
). Renombrar de hecho no funciona. ¿Tal vez puedo hacer esto sin conexión? Podría ser una solución alternativa.Respuestas:
Como dije en mi comentario ... La única forma en que sé cómo Windows va a volver a generar el nombre corto es copiar el directorio y eliminar el original. (no es factible para el directorio "Archivos de programa").
Sería mejor cambiar el script para usar nombres largos de archivos y carpetas. Si el script lo usa
PROGRA~1
, tendrá problemas con las instalaciones en las que la unidad se clonó de manera que los directorios se copiaron nuevamente. Por ejemplo, siProgramData
se copia primero en el disco, se nombraráPROGRA~1
yProgram Files
se nombraráPROGRA~2
.Hay una opción para mantener los scripts funcionando por ahora :
Puede crear una unión de directorio de
PROGRA~1
aC:\Program Files
. De esa manera, los scripts siguen funcionando y tienes tiempo para cambiarlos.Salida de
mklink /?
:fuente
mklink
permanente o simplemente funcionan en un script por lotes que se está ejecutando? Lo siento, no tengo suficiente información sobre enlaces simbólicos y uniones.mklink
son permanentes. Al igualmkdir
.Para definir nombres cortos (8dot3) para archivos de programa, haga lo siguiente:
desde el cmd, ingrese los siguientes cmds
Ahora debería ver el nombre corto definido para los archivos de programa. Si lo desea, vuelva a establecer el comportamiento de 8dot3name en la configuración original que devolvió el cmd de consulta.
fuente