cmd
Windows cmd.exe 10+Quick reference for the classic Windows Command Prompt (cmd.exe): file/dir operations, text search, system info, networking and batch scripting — with common options and practical examples.
40 commands
Navigation & Help
cd /d <path>Change current directory; /d also changes the drive letter.
cd /d D:\projects\appdir [<path>]List files and subdirectories with size, date and attributes.
/a show hidden/system; /s recurse; /o sort by date/size; /b bare format; /w wide
dir /a /o:-d /b C:\logs<cmd> /?Show the built-in help for any command (e.g., 'robocopy /?').
xcopy /?tree [<path>]Graphically display the folder structure of a drive or path.
/F include files; /A use ASCII characters; /J Juniper format
tree C:\projects /F | moreFiles & Directories
md <dir> (or mkdir)Create one or more directories.
md C:\app\logs 2>nulrd <dir> (or rmdir)Remove (delete) one or more directories.
/s also remove files and subdirs; /q quiet mode (no prompt)
rd /s /q C:\app\tmpdel <pattern>Delete one or more files.
/f force read-only; /s delete in subdirs; /q quiet; /p prompt per file
del /s /q C:\app\logs\*.logcopy <src> <dest>Copy one or more files to another location.
/y overwrite without prompt; /v verify; /d decrypt dest; /b binary
copy /y C:\src\config.json D:\app\config.jsonmove <src> <dest>Move files and rename files or directories.
/y overwrite; /-y prompt
move /y C:\app\old.log D:\archive\ren <old> <new>Rename a file or directory (use only on the filename, not the full path).
ren report.txt report-2026.txtxcopy <src> <dest>Copy files, directories, and subdirectories (legacy; superseded by robocopy).
/s /e subdirs; /y overwrite; /i assume dest is dir; /h hidden/system; /d only newer
xcopy /s /e /y /d C:\src D:\dstrobocopy <src> <dest>Robust file copy for larger jobs, with retry, logging and mirroring.
/MIR mirror; /MOV move (del source); /E subdirs incl empty; /Z restartable; /MT:n multithread; /LOG:<file>; /R:n retries; /W:n wait
robocopy C:\src \\ackup\daily /MIR /Z /MT:8 /LOG+:C:\logs\robocopy.txtattrib [+/-<attr>] <path>Change file attributes: Read-only (R), Hidden (H), System (S), Archive (A).
/s recurse; /d process folders; +R -R read-only on/off
attrib +R +H secret\config.inimklink [[/D] | /H] <link> <target>Create a symbolic (/D) or hard (/H) link to a file or directory.
/D directory symlink; /H hard link; /J directory junction
mklink /D C:\current C:\app\v2Text & Search
type <file>Display the entire contents of a text file on screen.
type C:\app\config.json | moremore < filePage output one screen at a time (work like Unix less).
type big.log | morefind "<str>" <files>Search for a literal string in one or more files (legacy; no regex).
/i case-insensitive; /v invert; /n line numbers; /c count only
find /i /n "TODO" *.mdfindstr [/R] <pattern> <files>Search text with literal strings or regex; supports multiple patterns.
/R regex; /S subdirs; /I case-insensitive; /N line numbers; /M files with matches; /V invert; /C:"text" literal string
findstr /R /S /I /N "TODO\|FIXME" *.cssort [/R] [<file>]Sort input (or file) alphabetically/numerically; sort supports codes via /+N sort key.
/R reverse; /+N sort by char position N; [drive1:][path1] [drive2:][path2] input/output
sort /R /+5 unsorted.txt sorted.txtfc /b file1 file2Compare two files; /b compares byte-by-byte (binary).
/b binary compare; /a abbreviated output; /l line-based; /n show line numbers
fc /b file1.bin file2.binSystem & Disk
systeminfoDetailed configuration about the host, OS, memory, network.
systeminfo /fo csv > sysinfo.csvtasklist [/FI <filter>]List running processes with PID, session, memory, image name.
/v verbose; /FI filter (e.g., "IMAGENAME eq cmd.exe"); /M modules
tasklist /FI "IMAGENAME eq node.exe" /FO csvtaskkill /PID <pid> [/F]Kill a process by PID (or image name, with /IM).
/F force; /IM image name; /PID pid; /T tree (children too); /FI filter
taskkill /IM chrome.exe /Fsc \[\\host] query|start|stop <service>Communicate with the Service Control Manager; query/config services.
query state= all; start / stop; config starts auto|manual|disabled; create / delete
sc query state= all | moreshutdown [/s|/r|/a]Log off, restart, or shut down the local/remote computer.
/s shutdown; /r restart; /a abort; /t N seconds; /c "comment"; /m \\host; /f force close apps
shutdown /r /t 60 /c "Windows Update"diskpartInteractive disk partitioning utility (run as admin); supports list disk/partition/volume.
list disk / select disk N / clean / create partition primary / format fs=ntfs quick / assign letter=D
diskpart /s script.txtchkdsk <drive>Check a disk for errors and recover readable data.
/f fix errors; /r recover bad sectors; /x force dismount; /v verbose
chkdsk D: /f /r /xvol <drive>:Show the volume label and serial number of a drive.
vol C:Networking
ipconfig [/all|/flushdns]Show TCP/IP configuration; /flushdns clears the DNS client cache.
/all detail; /release / renew DHCP; /flushdns; /displaydns
ipconfig /all && ipconfig /flushdnsping [-n <count>] <host>Send ICMP echo requests to test reachability and latency (default 4).
-n count; -t continuous; -l size; -w timeout(ms); -4 / -6 force version
ping -n 6 8.8.8.8tracert [-d] [-h <hops>] <host>Trace the route packets take to a host; -d skips reverse DNS.
-h max hops; -w timeout; -d no DNS; -4 / -6
tracert -d -h 15 google.comnslookup <host>Query DNS — interactive and non-interactive modes.
server 8.8.8.8; type=A/AAAA/MX/CNAME/TXT; -timeout=N
nslookup example.com 1.1.1.1netstat [-an] [-b]Display active TCP/UDP connections, listening ports, and the owning process.
-a all; -b owning exe; -n numeric; -o PID; -p tcp|udp; -r routing table
netstat -ano | findstr :443net [user|localgroup|share|start|stop|use|time|view]A huge grab-bag for user accounts, shares, services, mapped drives, etc.
net user <name> /add; net localgroup Administrators; net share; net use x: \\host\share
net user alice P@ssw0rd! /add && net localgroup Administrators alice /addBatch Scripting
echo [on|off|<text>]Toggle command echoing or print text without a trailing newline (use set /p instead).
@echo off disables the prefix; & echo. to emit a blank line
@echo off & echo Starting build...set <var>=<value>Define or modify an environment variable visible to child processes.
set /P var="prompt" read from stdin; set /A var=expr integer math
set /A total = 5 * 20 + 3if [/i] [not] <condition> cmdConditional execution — strings, numbers, errorlevel, exist files.
if exist file; if %var% == value; if %errorlevel% neq 0; if defined
if exist .git (git status) else (git init)for /f [...] %%<var> in (...) do <cmd>Loop constructs: /f (parse text/command output), /r (recurse), /d (dirs), plain (set).
tokens / delims / skip / usebackq for cmd; %%i in interactive scripts vs %i on cmd line
for /f "tokens=2 delims=:" %%p in ('reg query "HKCU\Software\Git" /v InstallPath') do set GIT_HOME=%%pcall <script> [<args>]Call another batch script and return (vs. plain invocation, which stops the caller).
? shows help; /e:on enable extensions; /v:on delayed expansion
call utils\env.bat && call build\compile.batgoto / rem / exitLabels (goto :label), comments (rem), and explicit exit codes.
exit /b <code>; comment blocks with rem ←→ ... reset
exit /b 1Related command cheatsheets
linux shell
Quick reference for everyday Linux / macOS shell commands: file operations, text processing, permissions, processes, networking, archive and storage — with common options and practical examples.
40 commands
bash 5+ / POSIX 2017
powershell
Quick reference for PowerShell cmdlets: discovery, file/system, pipeline filtering and selection, networking, remote sessions and modules — with common parameters and practical examples.
34 commands
PowerShell 7+
Trademark & Use Notice
These command-line tool cheatsheets are open community references. The names, logos, and trademarks of the tools referenced here (such as Git™, Docker™, Kubernetes®, kubectl, PostgreSQL®, MySQL®, Redis™, MongoDB®, Linux™, PowerShell™, Vim™, and others) are the property of their respective owners and are used here solely for identification and reference purposes.
All content in these cheatsheets is independently authored as a simplified, self-contained reference. It is not affiliated with, endorsed by, or sourced from any official documentation. Command listings, flag descriptions, and examples are original simplifications; for authoritative information please consult the official documentation of each tool.
Command syntax and option flags may differ across tool versions. The version tags shown reflect stable releases; behavior may differ in other versions. This cheatsheet does not imply any preference or recommendation by the trademark holders.
If a trademark or copyright owner believes that any content on this site infringes their rights, please send an email to [email protected]. Upon receiving valid proof of rights, we will modify or remove the relevant content within a reasonable period.
This website assumes no legal liability for any direct or indirect losses arising from the use of information presented on these pages.
About the Windows Command Prompt
The Windows Command Prompt (cmd.exe) is the classic command-line interpreter that ships with every desktop and server Windows release since Windows NT 3.1 (1993), and remains present in Windows 11. Cmd interprets `.bat` and `.cmd` batch files, exposes a small set of built-in commands (`dir`, `copy`, `move`, `del`, `xcopy`, `robocopy`, `tasklist`, `taskkill`, `ipconfig`, `netstat`), and delegates to console applications that print plain text. The scripting is deliberately minimal: variables with `%VAR%`, `for /f` text iteration, `if`, `goto`, and `call`. Cmd still matters for recovery (Safe Mode boots into cmd), for legacy `.bat` deployments, for troubleshooting when PowerShell is unavailable, and for quick file management without installing extra tools. Use it when you must fix a broken Windows install, write a tiny launcher that has to run before PowerShell exists, or invoke console utilities that only speak to stdin/stdout. Modern Windows prefers PowerShell for scripting; reach for cmd only when portability to legacy systems or pre-boot recovery demands it. Cmd does not phone home, but the commands you run (such as `net use`) can carry credentials in plaintext — keep batch files out of shared folders.
Cheatsheet version 1.0.0