%3F.png)
Tengo un problema con los nombres cortos 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, fsutil behavior query disable8dot3 C:
lo que me dice que la configuración de todo el sistema es 2
(por volumen) y el valor local es 0
(crear nombres de 8 puntos 3).
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 de 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 simplemente me da Access denied.
.
Respuesta1
Como dije en mi comentario... La única forma de saber cómo Windows volverá a generar el nombre corto es copiar el directorio y eliminar el original. (no es factible para el directorio "Archivos de programa").
Lo mejor sería cambiar el script para usar nombres de archivos y carpetas largos. Si el script lo usa PROGRA~1
, tendrá problemas con las instalaciones donde la unidad se clonó de manera que los directorios se copiaron nuevamente. Por ejemplo, si ProgramData
se copia primero en el disco, se nombrará PROGRA~1
y Program Files
se nombrará PROGRA~2
.
Hay una opción para mantener los scripts funcionando por ahora.:
Podrías crear ununión de directoriosdesde PROGRA~1
hasta C:\Program Files
. De esa forma los scripts siguen funcionando y tienes tiempo para cambiarlos.
mklink /J "C:\PROGRA~1" "C:\Program Files"
Salida de 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.
Respuesta2
Para definir nombres cortos (8punto3) para archivos de programa, haga lo siguiente:
- Reiniciar la computadora
- al arrancar, inicie en modo seguro con el indicador cmd (F8 en mi computadora)
- Acceso
desde el indicador de cmd ingrese los siguientes cmds
fsutil 8dot3name query fsutil behavior set disable8dot3 0 fsutil file setshortname "Program Files" PROGRA~1 dir /X
Ahora debería ver el nombre corto definido para los archivos de programa. Si lo desea, restablezca el comportamiento de 8dot3name a la configuración original que devolvió la consulta cmd.