Creating new file through Windows Powershell
WindowsPowershellCreatefileWindows Problem Overview
I have googled for the below question, but could not find any answer. Can someone help me on this; What is the command to create a new file through Windows Powershell?
Windows Solutions
Solution 1 - Windows
I'm guessing you're trying to create a text file?
New-Item c:\scripts\new_file.txt -type file
Where "C:\scripts\new_file.txt" is the fully qualified path including the file name and extension.
Taken from TechNet article
Solution 2 - Windows
To create file using echo
echo some-text > filename.txt
Example:
C:\>echo This is a sample text file > sample.txt
C:\>type sample.txt
This is a sample text file
C:\>
To create file using fsutil
fsutil file createnew filename number_of_bytes
Example:
fsutil file createnew sample2.txt 2000
File C:\sample2.txt is created
C:\data>dir
01/23/2016 09:34 PM 2,000 sample2.txt
C:\data>
Limitations
Fsutil can be used only by administrators. For non-admin users it throws up below error.
c:\>fsutil file /?
The FSUTIL utility requires that you have administrative privileges. c:>
Hope this helps!
Solution 3 - Windows
street smart (quick, dirty but works): (might change the file and add an invisible character which might cause the compiler to fail)
$null > file.txt
$null > file.html
Textbook method:
New-Item -path <path to the destination file> -type file
example:
New-Item -path "c:\" -type file -name "somefile.txt"
OR
ni file.xt -type file
absence of -path parameter means it creates it in the current working directory
Solution 4 - Windows
ni filename.txt
Replace filename.txt
with your file .
I found this the simplest answer to the question, and refer to other answers for more details.
Solution 5 - Windows
Here is another way to create a blank text file in Powershell which allows you to specify the encoding.
First example
For a blank text file:
Out-File C:\filename.txt -encoding ascii
Without -encoding ascii
, Powershell defaults to Unicode. You must specify ascii
if you want it to be readable or editable by another source.
Overwriting the file with new text:
"Some Text on first line" | Out-File C:\filename1.txt -encoding ascii
This replaces whatever text is in filename.txt
with Some Text on first line.
Appending text to the current file contents:
"Some More Text after the old text" | Out-File C:\filename1.txt -encoding ascii -Append
Specifying -Append
leaves the current contents of filename.txt
alone and adds Some More Text after the old text
to the end of the file, leaving the current content intact.
Solution 6 - Windows
As many have already pointed out, you can create files with the New-File
command.
This command has a default alias set to ni
but if you're used to unix commands you can create your own custom command easily.
Create a touch
command to act as New-File
like this:
Set-Alias -Name touch -Value New-Item
This new alias will allow you to create new files like so:
touch filename.txt
This would make these 3 commands equivalent:
New-Item filename.txt
ni filename.txt
touch filename.txt
Keep in mind that for this to be persistent, you should add the alias to your powershell profile. To get it's location simply run $profile
on ps. If you want to edit it directly, run code $profile
(for VSCode), vim $profile
(for vim) or whatever.
Solution 7 - Windows
# encodings:
New-Item file.js -ItemType File -Value "some content" # UTF-8
"some content" | Out-File main.js -Encoding utf8 # UTF-8-BOM
echo "some content" > file.js # UCS-2 LE BOM
Solution 8 - Windows
Another way to do it (method I like)
New-Item -ItemType file -Value 'This is just a test file' -Path C:\Users\Rick\Desktop\test.txt
Source: New-Item