¿Cómo forzar la generación de nombres cortos (8dot3)?

¿Cómo forzar la generación de nombres cortos (8dot3)?

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 ProgramDatase copia primero en el disco, se nombrará PROGRA~1y Program Filesse nombrará PROGRA~2.

Hay una opción para mantener los scripts funcionando por ahora.:

Podrías crear ununión de directoriosdesde PROGRA~1hasta 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:

  1. Reiniciar la computadora
  2. al arrancar, inicie en modo seguro con el indicador cmd (F8 en mi computadora)
  3. Acceso
  4. 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.

información relacionada