Problem Formulation
Given is a text file, say my_file.txt
. How to modify its content in your Windows command line working directory?
I’ll start with the most direct method to solve this problem in 90% of cases and give a more “pure” in-terminal method afterward.
Method 1: Using Notepad
The easiest way to edit a text file in the command line (CMD) on your Windows machine is to run the command notepad.exe my_text_file.txt
, or simply notepad my_text_file.txt
, in your cmd to open the text file with the visual editor Notepad.
notepad.exe my_file.txt
You can also skip the .exe
prefix in most cases:
notepad my_text_file.txt
Now, you may ask:
π‘ Is Notepad preinstalled in any Windows installation? The answer is: yes! Notepad is a generic text editor to create, open, and read plaintext files and it’s included with all Windows versions.
Here’s how that looks on my Win 10 machine:
When I type in the command notepad.exe my_text_file.txt
, CMD starts the Notepad visual editor in a new window.
I can then edit the file and hit CTRL + S
to save the new contents.
But what if you cannot open a text editor—e.g. if you’re logged into a remote server via SSH?
Method 2: Pure CMD Approach
If you cannot open Notepad or other visual editors for some reason, a simple way to overwrite a text file with built-in Windows command line tools is the following:
- Run the command
echo 'your new content' > my_file.txt
to print the new content usingecho
and pipe the output into the text filemy_text_file.txt
using>
. - Check the new content using the command
type my_text_file.txt
.
C:\Users\xcent\Desktop>echo 'hello world' > my_file.txt C:\Users\xcent\Desktop>type my_file.txt 'hello world'
Here’s what this looks like on my Windows machine, where I changed my_file.txt
to contain the text 'hello world!'
:
This is a simple and straightforward approach to small changes. However, if you have a large file and you just want to edit some minor details, this is not the best way.
Method 3: Change File Purely In CMD (Copy Con)
If you need a full-fledged solution to edit potentially large files in your Windows CMD, use this method! π
To create a new file in Windows command prompt, enter copy con
followed by the target file name (copy con my_file.txt
). Then enter the text you want to put in the file. To end and save the file, press Ctrl+Z
then Enter
or F6
then Enter
.
copy con my_file.txt
How this looks on my Win machine:
A couple of notes:
π‘ Info: To edit an existing file, display the text by using the type
command followed by the file name. Then copy and paste the text into the copy con
command to make changes. Be careful not to make any typos, or you’ll have to start over again. Backspace works if you catch the mistake before pressing Enter. Note that this method may not work in PowerShell or other command line interfaces that don’t support this feature.
Method 4: If you SSH’d to a Unix Machine
Of course, if you have logged in a Unix-based machine, you don’t need to install any editor because it comes with powerful integrated editors such as vim or emacs.
One of the following three commands should open your file in a terminal-based editing mode:
vim my_text_file.txt vi my_text_file.txt emacs my_text_file.txt
You can learn more about Vim here.
Summary
To edit a file.txt
in the command line, use the command notepad file.txt
to open a graphical editor on Windows.
If you need a simple file edit in your terminal without a graphical editor and without installation, you can use the command echo 'new content' > file.txt
that overwrites the old content in file.txt
with new content
.
If you need a more direct in-CMD text editor run copy con file.txt
to open the file in editing mode.
If you’re SSH’d into a Unix machine, running the Vim console-based editor may be the best idea. Use vim file.txt
or vi file.txt
to open it.
Feel free to join our email coding academy (it’s free):
π Recommended: How to Edit a Text File in PowerShell (Windows)