Colección de citas famosas - Frases elegantes - C:\Progra~1¿Qué significa ~1 en el archivo por lotes?

C:\Progra~1¿Qué significa ~1 en el archivo por lotes?

= = = = = = = = = = = = = = = = La especificación de nombre de archivo del formato 8.3 se originó en la era DOS = = = = = = = = = = = = = = = = = = = = = = = =

La llamada especificación de nombre de archivo corto en formato 8.3 es PROGRA~1 (directorio) o

Elemento Zhou~1.exe (archivo) es ese nombre——

"8" significa que la parte principal del nombre del archivo o del directorio es menor o igual a 8 bytes;

"3" significa que la parte de extensión del nombre del archivo es menor o igual a 3 bytes.

Otro punto es que los caracteres válidos en los nombres de archivos 8.3 no incluyen caracteres especiales como espacios.

La especificación de formato de nombre de archivo corto 8.3 es una antigua regla que quedó de la era DOS FAT12/FAT16.

A partir de Windows 95 (en realidad, a partir de Windows 3.11),

Windows ya puede admitir nombres de archivos largos, pero por motivos de compatibilidad con versiones posteriores, especialmente compatibilidad con sistemas de archivos,

El sistema de archivos FAT realiza la función de "proporcionar nombres de archivos cortos en un formato compatible con 8.3 para nombres de archivos largos".

Así, verá en un sistema de archivos FAT16/32:

El directorio "archivos de programa" también tiene un nombre corto "PROGRA ~ 1" en la especificación 8.3;

El archivo "Tabla Periódica de Elementos.exe" también tiene la abreviatura de "Tabla Periódica de Elementos~1.exe".

[Esto es un poco como un enlace físico en un sistema tipo UNIX, un objeto tiene dos métodos de referencia. ]

PD: ¿Sabes por qué el programa principal del navegador IE se llama iexplore.exe en lugar de iexplorer?

Solo para cuidar la especificación de nombre de archivo corto 8.3.

= = = = = = = = = = = = = Compatibilidad del sistema de archivos NTFS con la especificación de formato 8.3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

El sistema de archivos NTFS admite caracteres Unicode (UTF16) Establecer nombre de archivo, longitud máxima tiene 255 caracteres UTF16.

Por lo tanto, el sistema de archivos NTFS y el sistema operativo Windows con kernel NT de 32 bits basado en el juego de caracteres Unicode no necesitan seguir la especificación de nombre de archivo corto en formato 8.3 que quedó de la era DOS de 16 bits. .

Pero por compatibilidad, el sistema de archivos NTFS también proporciona una característica opcional: formato compatible 8.3.

De forma predeterminada, esta característica está activada en Windows, lo que significa que cada vez que se crea un objeto con un nombre de archivo largo,

el módulo del controlador NTFS del sistema terminará automáticamente con The El formato 8.3 crea un nombre corto apropiado para señalar el objeto.

Cabe señalar que esta característica no se aplica como en el sistema de archivos FAT.

Por lo tanto, diferentes herramientas de disco o sistemas operativos pueden tener diferentes métodos de ejecución.

Por ejemplo, en Windows XP, puede usar el comando fsutil set enable 8 dot3 1 para desactivarlo. .

Después de que el módulo del controlador desactive esta función, no creará nombres cortos adicionales cada vez.

Esto puede aumentar ligeramente la velocidad de escritura en el disco al crear/cambiar el nombre de una gran cantidad de archivos/directorios pequeños.

No es necesario calcular un nombre de archivo corto adecuado ni escribir esta información adicional en el disco.

= = = = = = = = = = = La compatibilidad de programas heredados estándar que no son win32 depende de la especificación 8.3 = = = = = = = = = = = = = = = = = = = = = = = = = =

Sin embargo, desactivar esta función puede causar problemas de compatibilidad con algunas aplicaciones más antiguas.

Aunque estos programas son "aplicaciones de Windows" con interfaces GUI de 32 bits, no siguen completamente win32.

El programa está estandarizado, pero normalmente mezcla API de 16 bits, utilizando el formato 8.3 para archivos de referencia breves.

Obviamente, estos

programas heredados mixtos de 16/32 bits no podrán encontrar archivos con nombres cortos en formato 8.3 si no se proporcionan nombres cortos para nombres de archivos largos en particiones NTFS. Por supuesto que habrá errores...

Pero las cosas no siempre son tan simples -

Recientemente, descubrí que varias aplicaciones antiguas no se iniciaban correctamente, incluidas aplicaciones en el campus de HKUST. red .

Un diccionario científico y tecnológico muy popular (programa principal ncce_win.exe, ¿qué te parece? ¿Estás familiarizado con él?)

Después de una investigación cuidadosa, parece que el problema solo ocurrir si se coloca en la partición NTFS, moverlo a una unidad flash USB FAT32 no es un problema.

Más tarde me sorprendió descubrir que no había ningún problema al formatear la unidad USB en NTFS y colocarla en este programa. ... ...

Unas horas más tarde, se encontró la verdadera razón, y fue muy complicado. En resumen:

Hay un directorio de primer nivel en toda la ruta que no es compatible con el formato de nombre de archivo corto y el programa principal no puede encontrar los archivos relevantes.

¿Por qué hay un directorio de primer nivel que es incompatible con la especificación 8.3?

Debido a que mi disco duro fue reemplazado después de que el disco duro anterior fallara, antes del reemplazo, ejecuté un sistema operativo Windows de 64 bits en el disco duro anterior y aún era legible. .

Además, Windows de 64 bits desactiva la función de compatibilidad con NTFS 8.3 y copia directorios y archivos.

Ninguno de ellos tiene nombres cortos adjuntos, especialmente el directorio E:\program files\ donde puse la aplicación.

(En teoría, Windows de 64 bits no admite programas mixtos de 16 bits y 16/32 bits, por lo que es posible.

De forma predeterminada, compatibilidad con controladores NTFS 8.3 está desactivado, o tal vez algunos optimizadores lo desactivaron)

Luego usé GHOST para restaurar la partición del sistema y el winXP de 32 bits restaurado no desactivó la compatibilidad con 8.3.

Pero el problema clave es que los directorios y archivos (sin nombres cortos) que se han escrito en la partición NTFS no

Este XP de 32 bits reconstruye el nombre corto del archivo, el El sistema solo reconstruirá el nombre corto del archivo en el nuevo archivo o directorio creado con el nombre de archivo 8.3.

En cuanto a los directorios y archivos creados previamente, incluso cambiarles el nombre es imposible.

"Recordar" a XP que verifique y agregue un nombre de archivo corto; esto me desconcierta.

Entonces, cuando coloco el software en el subdirectorio E:\program files\, aunque el subdirectorio

"Diccionario de tecnología" y los nombres de archivos como ncce_win.exe coinciden todos 8.3, pero a lo largo de toda la ruta,

hay un "archivo de programa" que no se ajusta a la especificación 8.3 y no existe una abreviatura equivalente para reemplazarlo.

Por lo tanto, una API no puede utilizar "E:\program~1\scientific Dictionary\xxxxxxxx. XXX" para localizar archivos.

Por supuesto, este programa no puede iniciarse normalmente.