Long filenames, NTFS and legal filename characters

Long file names

If a filename contains spaces you must surround it with double quotes: "my file.txt"
Filenames that include quotes or parenthesis (') are legal filenames but they can still cause problems, particularly within batch files where these characters have special meaning.

Undeletable Files: If the complete pathname becomes longer than 256 characters, (which can happen when folders are dragged and dropped into subfolders) then the long filenames become difficult to copy, backup or delete.
See the DEL page for more on deleting long filenames.

Short file names

The order in which you create files will affect short 8.3 names
echo abc > "a long file 1.txt"
echo abc > "a long file 3.txt"
echo abc > "a long file 2.txt"
DIR /x
:: will produce this:
ALONGF~1.TXT a long file 1.txt
ALONGF~3.TXT a long file 2.txt
ALONGF~2.TXT a long file 3.txt

If these files are now copied to another folder the 8.3 filenames will change, this is most likely to happen when upgrading server storage or restoring data from a backup.

Similarly for folders
md "a long folder 1"
md "a long folder 3"
md "a long folder 2"
DIR /x
:: will produce this:
ALONGF~1 a long folder 1
ALONGF~3 a long folder 2
ALONGF~2 a long folder 3

Again copying these to somewhere else will change the 8.3 names to:
ALONGF~1 a long folder 1
ALONGF~2 a long folder 2
ALONGF~3 a long folder 3

See the Wildcards page for more long/short filename issues.

Enable or Disable 8.3 filenames in NTFS

If 8.3 filenames are disabled, ancient 16 bit software (like WordPerfect 3) will still be able to read/write short filenames (C:\WORK\JAN.WPD), but won’t see a short equivalent for long filenames (C:\My Documents\new stuff.wpd).
An 8.3 filename can also be useful when dealing with corruption such as an 'undeletable' file.

Disable the creation of 8.3 filenames

Enable the creation of 8.3 filenames (default)

Batch files .BAT or .CMD ?

Batch files can be saved with the extension .BAT or .CMD
The .BAT extension will run under Windows 95/MSDOS but the .CMD extension will only run under NT, XP or later.
One key difference between .CMD and .BAT scripts (running under CMD.EXE) is that with extensions enabled, commands like PATH/APPEND/PROMPT/SET/ASSOC will reset ERRORLEVEL to 0 if they succeed. In the old style .BAT file, the ERRORLEVEL will not be changed unless there is a new error (source).

NTFS file system

Legal characters in NTFS include the following:

! [ ] . ; = ( )

Illegal Characters: The following characters are not permitted in Windows file or directory names:

/ \ : * ? " < > |

The control characters (0x00-0x1F, 0x7F) are also invalid in Windows' FAT and NTFS.
Windows Explorer will not create files with a period (.) as the first or only character in the filename, although NTFS (and many command-line tools) do support this.

A long file name (LFN) can be up to 255 characters long.
NTFS supports paths up to 32768 characters in length, but only when using the Unicode APIs.

When using very long path names, prefix the path with the characters \\?\ and use the Unicode versions of the C Runtime functions.

8.3 format filenames

These can have between 1 and 8 characters in the file name. Short file names have the 8.3 format and are compatible with MS-DOS and other legacy operating systems.
The name must start with a letter or a number and can contain any characters except the following:

 / \ : * ? " [ ] | = , . ; (space)

An 8.3 file name typically has a file name extension between one and three characters long with the same character restrictions. A period separates the file name from the file name extension.

Some characters are invalid in 8.3 format filenames but are valid in NTFS filenames and are also valid Delimiters Typically the Windows GUI will silently change the 8.3 name for such files where necessary, for example DE=MO.TXT will become DE_MO~1.TXT

You can use long file names in both NTFS and FAT volumes.

Special file names reserved by the system (cannot be used for files or folders):

CON, AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN, NUL , conIN$ , conOUT$

“Tongues, like governments, have a natural tendency to degeneration; we have long preserved our constitution, let us make some struggles for our language” - Samuel Johnson: Preface to the Dictionary


Escape Characters, Delimiters and Quotes

Copyright © SS64.com 1999-2018
Some rights reserved