Duy Dinh - 2012-04-06

DIR

Display a list of files and subfolders

Syntax
DIR [pathname(s)] [display_format] [file_attributes] [sorted] [time] [options]

Key
[pathname] The drive, folder, and/or files to display,
this can include wildcards:
* Match any characters
? Match any ONE character

[display_format]
/P Pause after each screen of data.
/W Wide List format, sorted horizontally.
/D Wide List format, sorted by vertical column.

[file_attributes] /A:

/A:D Folder /A:-D NOT Folder
/A:R Read-only /A:-R NOT Read-only
/A:H Hidden /A:-H NOT Hidden
/A:A Archive /A:-A NOT Archive
/A Show all files
Several attributes may be combined e.g. /A:HD-R

[sorted] Sorted by /O:

/O:N Name /O:-N Name
/O:S file Size /O:-S file Size
/O:E file Extension /O:-E file Extension
/O:D Date & time /O:-D Date & time
/O:G Group folders first /O:-G Group folders last
several attributes may be combined e.g. /O:GEN

[time] /T: the time field to display & use for sorting

/T:C Creation
/T:A Last Access
/T:W Last Written (default)

[options]
/S include all subfolders.
/R Display alternate data streams. (Vista and above)
/B Bare format (no heading, file sizes or summary).
/L use Lowercase.
/Q Display the owner of the file.

/N long list format where filenames are on the far right.
/X As for /N but with the short filenames included.

/C Include thousand separator in file sizes.
/-C don't include thousand separator in file sizes.

/4 Display four-digit years

The switches above may be preset by adding them to an environment variable called DIRCMD.
For example: SET DIRCMD=/O:N /S

Override any preset DIRCMD switches by prefixing the switch with -
For example: DIR . /-S

Upper and Lower Case filenames:
Filenames longer than 8 characters - will always display the filename with mixed case as entered.
Filenames shorter than 8 characters - may display the filename in upper or lower case - this may vary from one client to another (registry setting)

To obtain a bare DIR format (no heading or footer info) but retain all the details, pipe the output of DIR into FIND, this assumes that your date separator is /

DIR c:\temp*.* | FIND "/"

FOR /f "tokens=" %%G IN ('dir c:\temp*. ^| find "/"') DO echo %%G

All file sizes are shown in bytes.

Normally DIR /b will return just the filename, however when displaying subfolders with DIR /b /s the command will return a full pathname.

On Windows Vista and later, a list of alternate data streams can be obtained using DIR /R, on earlier operating systems, the SysInternals utility streams can be used instead.