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?
-
what type of `file` are you trying to create? Or in other words what file extension? Like .txt .docx etc... – akasoggybunz Aug 01 '17 at 19:36
-
2Strange **I** get plenty of results with your [exact title in google](http://www.google.com/search?q=Creating+new+file+through+Windows+Powershell) Don't expect more from others than you are willing to do -1. – Aug 01 '17 at 19:46
9 Answers
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

- 1,351
- 8
- 13
-
++, but note that you're not creating a _text_ file, you're creating a _zero-byte_ (empty file) - which has no inherent type. – mklement0 Aug 02 '17 at 01:13
-
2This should be the answer. Get, Start, New, and etc is new era of cmdlet that's great for sysadmin. Just left old command behind. – Benyamin Limanto Jan 24 '19 at 16:50
-
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!

- 663
- 1
- 6
- 14
-
7Please don't suggest the use of `echo` - an alias for the rarely needed `Write-Output` cmdlet - because it is a bad habit to promote in the PowerShell world. Newcomers need to be guided towards PowerShell's _implicit_ output model: `'some-text' > filename.txt`. If your code is meant to be `cmd.exe` code (it also works as that), please note the the question is tagged [tag:powershell]. – mklement0 Aug 02 '17 at 01:17
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

- 1
- 1

- 3,832
- 26
- 30
-
1So many great options, especially short-hand cmd `ni` with working directory – Ben Sewards Nov 05 '20 at 02:15
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.

- 3,847
- 30
- 32
-
1Quick thing to point out here is that `ni` is a default alias for the `New-Item` command. Alias information for a specific command can be view via the `gal -definition` command, e.g. `gal -definition New-Item`. – Dillon Aug 07 '20 at 14:43
-
3I really liked this answer. Also ni (New-Item) creates the file with UTF-8 encoding and echo creates it with ucs-2 le bom(UTF-16) encoding. Unless you change the encoding, the files created with echo will be twice the size. – Des Sep 15 '20 at 09:38
-
This is easiest. Note that when running this, my powershell asked for type, I put in `file` – mikey Nov 09 '20 at 21:44
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.

- 3,266
- 21
- 33

- 91
- 1
- 2
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.

- 31
- 3
Use the New-item cmdlet and your new file name.
New-item <filename>
Example:
New-item My_newFile.txt

- 11
- 2
# 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

- 35
- 1
- 9