Whether you're just starting your coding journey or you've been at it for years, mastering the Windows command line is one of those skills that just makes everything smoother.
Sure, we've got fancy IDEs and GUI tools, but sometimes the fastest way from point A to point B is through that Command Prompt or PowerShell window.
I've put together this list of essential commands that I find myself using constantly on Windows. Hopefully they'll save you time and make you more productive day in and day out.
Note: Most of these commands work in both Command Prompt (cmd) and PowerShell, but I'll mention when there are PowerShell-specific alternatives that are better.
File and Directory Navigation
cd - Change Directory
Your main navigation command. cd .. goes up one level, cd %USERPROFILE% takes you to your user folder, and cd /d D:\Projects switches to a different drive and folder.
dir - List Directory Contents
Shows files and directories in your current location. Use dir /a to see hidden files, dir /s to search subdirectories.
pwd (PowerShell) - Print Working Directory
In PowerShell, this shows your current location. In Command Prompt, just type cd with no arguments.
mkdir or md - Make Directory
Creates new folders. mkdir "My New Folder" creates a folder with spaces in the name.
rmdir or rd - Remove Directory
Removes directories. Use rmdir /s foldername to remove a directory and all its contents.
File Operations
copy - Copy Files
Copies files from one location to another. copy source.txt destination.txt copies a file.
xcopy - Extended Copy
More powerful than copy. xcopy source destination /e /i copies directories and subdirectories, including empty ones.
move - Move/Rename Files
Moves files or renames them. move oldname.txt newname.txt renames a file.
del - Delete Files
Deletes files. del filename.txt removes a file, del *.tmp removes all .tmp files.
ren or rename - Rename Files
Renames files or directories. ren oldname.txt newname.txt changes the filename.
Text Processing
type - Display File Contents
Shows the contents of a text file. type readme.txt displays the file content.
more - View File Contents Page by Page
Better for larger files since you can scroll through them page by page.
findstr - Search Text
Windows equivalent of grep. findstr "searchterm" filename.txt finds lines containing your search term. Use /r for regular expressions.
find - Simple Text Search
Simpler than findstr. find "text" filename.txt searches for exact text matches.
Process Management
tasklist - List Running Processes
Shows all running processes. tasklist | findstr "notepad" finds all notepad processes.
taskkill - Terminate Processes
Stops processes. taskkill /pid 1234 kills process with ID 1234, taskkill /im notepad.exe kills all notepad processes.
start - Start Programs
Launches programs or opens files. start notepad.exe opens Notepad, start . opens current directory in Explorer.
Network and System Info
ping - Test Network Connectivity
Tests if a host is reachable. ping google.com checks your connection to Google.
ipconfig - Network Configuration
Shows network adapter information. ipconfig /all shows detailed info, ipconfig /release and ipconfig /renew refresh your IP address.
netstat - Network Statistics
Shows network connections. netstat -an shows all connections and listening ports.
systeminfo - System Information
Displays detailed system configuration information.
wmic - Windows Management Interface
Powerful tool for system info. wmic cpu get name shows CPU info, wmic logicaldisk get size,freespace,caption shows disk space.
File and Directory Search
where - Find Files in PATH
Finds executable files. where python shows where Python is installed.
forfiles - Advanced File Operations
Performs operations on files based on criteria. forfiles /m *.log /c "cmd /c del @path" deletes all .log files.
dir with wildcards
Use dir *.txt /s to find all .txt files in current directory and subdirectories.
Environment and Variables
set - Environment Variables
Shows or sets environment variables. set PATH shows the PATH variable, set MYVAR=value sets a variable.
echo - Display Text
Displays text or variable values. echo %PATH% shows the PATH variable content.
path - Display/Modify PATH
Shows or modifies the PATH environment variable.
PowerShell Specific Commands
Get-Process - List Processes
PowerShell way to list processes. More powerful than tasklist with object-oriented output.
Get-Service - List Services
Shows Windows services and their status.
Get-ChildItem (or ls) - List Files
PowerShell equivalent of dir, but with more powerful filtering options.
Get-Content - Read File Contents
PowerShell way to read files. Get-Content filename.txt displays file contents.
Select-String - Search Text
PowerShell's powerful text searching. Select-String "pattern" filename.txt searches for patterns.
Compression and Archives
tar - Archive Files (Windows 10+)
Recent Windows versions include tar. tar -czf archive.tar.gz folder\ creates a compressed archive.
compact - File Compression
Compresses files using NTFS compression. compact /c filename.txt compresses a file.
PowerShell Archive Commands:
Compress-Archive -Path folder -DestinationPath archive.zip creates a ZIP file
Expand-Archive -Path archive.zip -DestinationPath folder extracts a ZIP file
Version Control (Git)
git status - Check Repository Status
Shows which files are staged, unstaged, or untracked.
git add - Stage Changes
Stages files for commit. git add . stages everything, git add filename stages specific files.
git commit - Save Changes
Commits staged changes. git commit -m "commit message" commits with a message.
git push and git pull
git push uploads your changes to the remote repository, git pull downloads changes from the remote.
git log - View Commit History
Shows the commit history. git log --oneline gives a condensed view.
Batch File Basics
@echo off - Suppress Command Display
Put this at the top of batch files to hide the commands as they execute.
pause - Wait for User Input
Pauses execution until user presses a key.
goto - Jump to Label
Jumps to a labeled section in a batch file.
if - Conditional Execution
if exist filename.txt echo File exists checks if a file exists.
Useful Shortcuts and Tips
cls - Clear Screen
Clears the command prompt screen.
exit - Close Command Prompt
Closes the current command prompt window.
doskey - Command History
Sets up command aliases and shows command history features.
Tab Completion
Press Tab to auto-complete file and folder names.
F7 - Command History
Shows a popup with recent commands you can select from.
Windows-Specific File Operations
attrib - File Attributes
Changes file attributes. attrib +h filename.txt hides a file, attrib -h filename.txt unhides it.
icacls - File Permissions
Manages file and folder permissions. icacls filename.txt /grant Everyone:F gives everyone full access.
robocopy - Robust Copy
Advanced file copying with many options. robocopy source dest /e /z /r:3 copies with error recovery.
Putting It All Together
The real power comes from combining these commands and using pipes (|) to chain them together. For example, you might use tasklist | findstr "node" to find Node.js processes, or dir *.log /s | find "error" to search for log files containing errors.
You can also create batch files (.bat) or PowerShell scripts (.ps1) to automate repetitive tasks. A simple batch file might look like:
@echo off
echo Starting development environment...
cd /d D:\Projects\MyApp
code .
npm start
Don't feel like you need to memorize everything at once. Start with the basics like cd, dir, mkdir, and del. As you get comfortable, add more commands to your toolkit. Most importantly, don't be afraid to experiment!
The Windows command line might seem intimidating at first, but once you get the hang of it, you'll wonder how you ever lived without it. It's fast, powerful, and these commands will make you more productive whether you're using Command Prompt or PowerShell.