通过Windows Powershell创建新文件

64

我在谷歌上搜索了以下问题,但是没有找到任何答案。 请有人帮我解决这个问题: 如何通过Windows Powershell命令创建一个新文件?


你想创建什么类型的“文件”?换句话说,你想要什么文件扩展名?例如 .txt、.docx 等等。 - akasoggybunz
2
奇怪,我在谷歌上用你的确切标题得到了很多结果。不要期望别人做你自己不愿意做的事情。-1。 - user6811411
9个回答

68

我猜你是想创建一个文本文件?

New-Item c:\scripts\new_file.txt -type file

其中 "C:\scripts\new_file.txt" 是包括文件名和扩展名的完全限定路径。

来源于TechNet文章


++,但请注意,您不是创建一个“文本”文件,而是创建一个“零字节”(空文件)- 它没有固有类型。 - mklement0
2
这应该是答案。Get、Start、New等等是命令行的新时代,非常适合系统管理员使用。只需放弃旧命令即可。 - Benyamin Limanto
如何创建路径中的文件和每个目录? - JobaDiniz

57

使用echo命令创建文件

echo some-text  > filename.txt

例子:

C:\>echo This is a sample text file > sample.txt
C:\>type sample.txt
This is a sample text file
C:\>

使用fsutil创建文件

fsutil file createnew filename number_of_bytes

例子:

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>

限制

Fsutil仅可由管理员使用。对于非管理员用户,它会抛出以下错误。

c:\>fsutil file /?

使用FSUTIL工具需要具备管理员权限。

希望这可以帮到你!


8
请不要建议使用 echo 命令,它是很少需要使用的 Write-Output 命令的别名,因为在 PowerShell 的世界中宣传这种习惯是不好的。应该引导新手了解 PowerShell 的隐式输出模型:'some-text' > filename.txt。如果您的代码旨在作为 cmd.exe 代码使用(它也可以这样工作),请注意问题标记为 [tag:powershell]。 - mklement0

25

街头智慧(快速、简单但有效):(可能会更改文件并添加一个不可见字符,这可能导致编译器失败)

$null > file.txt
$null > file.html

传统方法:

New-Item -path <path to the destination file> -type file

示例:

New-Item -path "c:\" -type file -name "somefile.txt"

OR
ni file.xt -type file

如果没有-path参数,意味着它将在当前工作目录中创建


1
有很多很棒的选项,特别是带有工作目录的简写命令 ni - Ben Sewards

22
ni filename.txt

用你的文件替换filename.txt

我发现这是回答这个问题最简单的方法,如果需要更多细节请参考其他答案。


1
这里需要指出的是,niNew-Item 命令的默认别名。可以通过 gal -definition 命令查看特定命令的别名信息,例如 gal -definition New-Item - Dillon
4
我很喜欢这个回答。另外,ni(New-Item)使用UTF-8编码创建文件,而echo则使用带BOM的UCS-2 LE编码(UTF-16)。除非你更改编码,否则用echo创建的文件大小将是ni创建文件大小的两倍。 - Des
这很简单。请注意,运行此命令时,我的PowerShell会要求输入类型,我输入了“file”。 - mikey

9
这里有另一种使用PowerShell创建空白文本文件的方法,允许您指定编码方式。 第一个例子 对于一个空白文本文件:
Out-File C:\filename.txt -encoding ascii

没有指定-encoding ascii,PowerShell 默认使用 Unicode 编码。如果想让其他源能够读取或编辑该文件,必须指定 ascii 编码。
覆盖文件中的文本:
"Some Text on first line" | Out-File C:\filename1.txt -encoding ascii

这将用Some Text on first line.替换filename.txt中的任何文本。

向当前文件内容追加文本:

"Some More Text after the old text" | Out-File C:\filename1.txt -encoding ascii -Append

指定-Append选项将不更改filename.txt文件的当前内容,而是在文件末尾添加Some More Text after the old text,保留当前内容不变。


3

正如许多人已经指出的那样,您可以使用 New-File 命令创建文件。
该命令默认有一个别名为 ni,但如果您习惯于使用 unix 命令,您可以轻松地创建自己的自定义命令。

像这样创建一个类似于 New-Filetouch 命令:

Set-Alias -Name touch -Value New-Item

使用这个新别名可以轻松创建如下文件:

touch filename.txt

这将使这三个命令等效:
New-Item filename.txt
ni filename.txt
touch filename.txt

记住,要使此更改持久化,您应该将别名添加到您的powershell配置文件中。只需在ps上运行$profile即可获取其位置。如果您想直接编辑它,请运行code $profile(对于VSCode),vim $profile(对于vim)或其他命令。


2

使用New-item命令和您的新文件名。

New-item <filename>

示例:

New-item My_newFile.txt

2
另一种做法(我喜欢的方法)
New-Item -ItemType file -Value 'This is just a test file' -Path C:\Users\Rick\Desktop\test.txt

来源:新项目

0
                                                       # 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接