aspose.info
EN

CMD - Windows Command File Format

Updated

What is a CMD file?

A CMD file consists of a script containing one or multiple commands in the form of plain text that are run in order to execute various tasks. It is similar to a BAT file, which is also generally used to store a batch of executable commands. The CMD files are widely used in the Microsoft Windows operating system. These files were introduced in the almost in 90’s but still used in the latest Windows operating system. These files are generally written to execute more than one command in a sequence.

CMD file format

CMD is a file format used by CP/M-style executable programs. It is generally comparable with COM in CP/M-80 and EXE in DOS. A CMD file contains 1 to 8 groups of code or data and a 128-byte header. Each group can be up to 1 mb in size. CMD files can also contain relocation information and Resident System Extensions (RSXs) in its later versions. The CMD is a newcomer as compared with BAT file; used for MS-DOS before the release of windows In MS-DOS. Although, you can still save files with .bat extension today, many people use the .cmd extension to save their executable scripts.

CMD format Specification

The start of the header contains the list of the groups present in the file along with their types. Each type can be used one time at most. These types are:

  • Code
  • Data
  • Extra
  • Stack
  • User 1
  • User 2
  • User 3
  • User 4
  • Shared Code

Likewise Program Segment Prefix in DOS, the first 256 bytes of the data group are zero. They will be populated by CP/M-86 with the zero page. If there is no data group, then the first 256 bytes of the code group will be used instead.

CMD file example

Following is an example of a CMD script to show systems information.

@ECHO OFF

:: This CMD script provides you with your operating system, hardware and network information.

TITLE My System Info

ECHO Please wait... Gathering system information.

ECHO =========================

ECHO OPERATING SYSTEM

systeminfo | findstr /c:"OS Name"

systeminfo | findstr /c:"OS Version"

ECHO =========================

ECHO BIOS

systeminfo | findstr /c:"System Type"

ECHO =========================

ECHO MEMORY

systeminfo | findstr /c:"Total Physical Memory"

ECHO =========================

ECHO CPU

wmic cpu get name

ECHO =========================

ECHO NETWORK ADDRESS

ipconfig | findstr IPv4

ipconfig | findstr IPv6

PAUSE

References

See also