Reputation: 9836
I need to make a script that can write one line of text to a text file in the same directory as the batch file.
Upvotes: 252
Views: 850590
Reputation: 5609
My solution is similar to jeb's brilliant answer, but it requires just one additional line to be added to an existing text file so there's no need to add echo
in front of each line.
(for /F "tokens=* skip=1" %%F in ('type %~0') do (echo %%F >> %~n0.txt)) & exit
Line1
Line2
Last Line
When saved as "sometext.bat" this will create a file "sometext.txt" with the content:
Line1 Line2 Last Line
Upvotes: 0
Reputation: 125747
You can use echo
, and redirect the output to a text file (see notes below):
rem Saved in D:\Temp\WriteText.bat
@echo off
echo This is a test> test.txt
echo 123>> test.txt
echo 245.67>> test.txt
Output:
D:\Temp>WriteText D:\Temp>type test.txt This is a test 123 245.67 D:\Temp>
Notes:
@echo off
turns off printing of each command to the console@
at the beginning of the remaining lines stops printing of the echo
command itself, but does not suppress echo
output. (It allows the rest of the line after @echo
to display.>
or >>
will write to the current directory (the directory the code is being run in).@echo This is a test > test.txt
uses one >
to overwrite any file that already exists with new content.@echo
statements use two >>
characters to append to the text file (add to), instead of overwriting it.type test.txt
simply types the file output to the command window.Upvotes: 405
Reputation: 27
@echo off
echo Type your text here.
:top
set /p boompanes=
pause
echo %boompanes%> practice.txt
hope this helps. you should change the string names(IDK what its called) and the file name
Upvotes: 1
Reputation: 477
echo "blahblah"> txt.txt
will erase the txt and put blahblah in it's place
echo "blahblah">> txt.txt
will write blahblah on a new line in the txt
I think that both will create a new txt if none exists (I know that the first one does)
Where "txt.txt
" is written above, a file path can be inserted if wanted. e.g. C:\Users\<username>\desktop
, which will put it on their desktop.
Upvotes: 34
Reputation: 447
copy con
to write a long textExample:
C:\COPY CON [drive:][path][File name]
.... Content
F6
1 file(s) is copied
Upvotes: 3
Reputation: 82420
It's easier to use only one code block, then you only need one redirection.
(
echo Line1
echo Line2
...
echo Last Line
) > filename.txt
Upvotes: 163
Reputation: 163
@echo off
(echo this is in the first line) > xy.txt
(echo this is in the second line) >> xy.txt
exit
The two >>
means that the second line will be appended to the file (i.e. second line will start after the last line of xy.txt).
this is how the xy.txt
looks like:
this is in the first line
this is in the second line
Upvotes: 16
Reputation: 59
@echo off Title Writing using Batch Files color 0a
echo Example Text > Filename.txt echo Additional Text >> Filename.txt
@ECHO OFF
Title Writing Using Batch Files
color 0a
echo Example Text > Filename.txt
echo Additional Text >> Filename.txt
Upvotes: 5