NT Syntax


Display a list of files and subfolders

      DIR [pathname(s)] [display_format] [file_attributes] [sorted] [time] [options]
   [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. /B Bare format (no heading information or summary). /L use Lowercase. /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.

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

Filenames longer than 8 characters
- DIR will always display the filename with the CASE as entered

Filenames shorter than 8 characters
- DIR 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

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

Checking filesize during a download (to monitor progress of a large download)

   TYPE file_being_downloaded >NUL 
   DIR file_being_downloaded

Since TYPE won't lock the file_being_downloaded in any way, this doesn't pose a threat to the download itself.

Related commands

You can also list files with XCOPY /L
You can also get File Sizes and Date/Time from Windows 2000/XP Batch Parameters
DIRUSE - show size of multiple subfolders. (Resource Kit)
Freedisk.exe - check free disk space. (Win 2K ResKit)
Where - locate files on disk, recursive searches. (Win 2K ResKit)

Using DIR to display drive status - disk missing / ready / empty
Q226370 - Browsing LAN directories is slow

Equivalent Linux BASH commands:

ls - List information about file(s)

Simon Sheppard