MS Dos Le DOS sied

Noms courts et noms longs

Deux noms pour un même fichier

Windows autorise maintenant des noms de fichiers d'une longueur allant jusqu'à 256 caractères et pouvant comporter des espaces (noms longs). Les extensions peuvent elles aussi se composer de plus de 3 caractères et comprendre des espaces. Le DOS lui ne permet pas d'aller au-delà de 8 caractères et ne tolère ni les espaces ni les extensions à rallonge (noms courts dits aussi au format 8.3). Pour des raisons de compatibilité Windows associe donc un nom court à chaque fichier dont le nom n'est pas strictement au format 8.3 (plus de 8 caractères, présence d'espaces, etc.).

Ceci vaut bien sûr autant pour les noms de fichiers que pour les noms de répertoires lesquels sont aussi des fichiers.

Le mode console étant une application Windows les noms longs y sont reconnus à condition qu'ils ne contiennent aucun espace. Exemple :

cd \documents_techniques

L'espace a toujours une signification dans la syntaxe d'une commande, c'est un délimiteur de paramètres. Si un nom contient un ou plusieurs espaces il doit donc être mis entre guillemets. Les guillemets peuvent encadrer la totalité de l'ensemble chemin + nom ou, un par un, chacun des éléments. On écrira indifféremment :

cd \"program files\fichiers communs"
cd \"program files"\"fichiers communs"

En DOS natif on est obligé de recourir exclusivement aux noms courts.

Comment Windows crée un nom court à partir d'un nom long

La règle de fabrication est la suivante :
   - suppression des blancs ;
   - troncature au-delà des 6 premiers caractères de la nouvelle chaîne ;
   - conversion en majuscules y compris pour les caractères munis de signes diacritiques (accents, tréma, cédille) ;
   - suffixation (ajout) par le caractère tilde et un numéro d'ordre, 1 dans la majorité des cas (cf. ci-après traitement des homonymes).

Il faut donc écrire :

cd \progra~1\fichie~1
cd \windows\menudé~1

Le 1er de ces exemples illustre également la troncature d'un nom de répertoire.

Les noms ne dépassant pas 8 caractères mais comportant des espaces sont eux aussi transformés. Les espaces sont supprimés puis le nom est systématiquement suffixé par ~n comme pour les noms longs, avec troncature à 6 caractères si besoin est.

Un nom de fichier peut aussi comporter plusieurs caractères point. Seul le dernier est considéré comme annonçant l'extension. Les points intermédiaires subissent le même traitement que les espaces et même si le nom obtenu ne dépasse pas 8 caractères la règle de suffixation est également appliquée.

Les extensions longues ou comportant des espaces sont transformées de la manière suivante :
   - suppression des blancs ;
   - troncature au-delà des 3 premiers caractères de la nouvelle chaîne ;
   - suffixation comme dans les cas précédents.

On remarque que la suffixation par ~n est systématique, quel que soit le type de transformation apporté au nom d'origine.

Sous Windows 9X, en mode console la commande dir affiche à la fois les noms courts et les noms longs. La différenciation entre majuscules et minuscules est conservée.

Sous Windows XP il faut utiliser le commutateur /X pour provoquer ce double affichage mais les noms courts sont affichés en majuscules. Le commutateur /L permet d'afficher les noms (longs et courts) en minuscules mais en perdant la différenciation d'origine.

Traitement des homonymies

Quand la transformation du nom long en nom court aboutit à créer un homonyme (un fichier de même nom existe déjà dans le répertoire) le nom est alors suffixé par ~2 au lieu de ~1. En cas d'homonymie multiple les noms suivants seront suffixés par ~3 puis ~4. Au-delà les règles de troncature changent.

À partir du cinquième homonyme seuls les deux premiers caractères du nom d'origine sont conservés, une chaîne discriminante de 4 caractères est ajoutée et le tout est systématiquement suffixé par ~1.

Homonymie multiple

La deuxième limite de longueur

Il peut arriver que Windows refuse d'accéder à certains fichiers au motif que leur nom est trop long bien que celui-ci comporte moins de 256 caractères.

Dans ce cas c'est en fait la longueur totale de la chaîne de caractères comprenant le nom du fichier précédé de son chemin d'accès qui est supérieure ou égale à 256 caractères (259 en comptant la lettre d'unité, les deux points et la barre oblique inverse). C'est la deuxième limite.

Ceci résulte généralement d'un changement de nom de l'un des répertoires constituant le chemin d'accès au fichier. Prenons un exemple.

Imaginons un fichier dont le nom est composé de 245 caractères que nous appellerons sous la forme abrégée : fic_nom_long_245_caractères. Il est dans C:\documents. On renomme documents en vieux_documents. On a donc :
   - avant renommage : C:\documents\fic_nom_long_245_caractères --> longueur totale 255 caractères ;
   - après renommage : C:\vieux_documents\fic_nom_long_245_caractères --> longueur totale 261 caractères.

Le fichier fic_nom_long_245_caractères n'est plus accessible. Il ne pourra le redevenir qu'en renommant le répertoire vieux_documents avec un nom plus court.

 

Toutes les pages du site Les autres sites

accueil
aide en ligne sur les commandes
créer un menu de configuration dans le fichier config.sys
disquettes d'amorce
fichiers config.sys et autoexec.bat
fichiers de commandes
gestion de menus avec des fichiers de commandes
indicateurs de re-direction et conduit
LPT1 et les imprimantes USB
mode console, DOS émulé ou natif
noms courts et noms longs
personnalisation du DOS
prise en compte des ports USB
répertoires et dossiers
un CD boîte à outils
variables d'environnement

Tentatives de bonnes réponses à des questions qui peuvent ne pas l'être

 

Les bricolages de Heffgé