如何在DOS/Windows命令行创建一个空文件?
我试着:
copy nul > file.txt
但是它总是显示文件被复制了。
在标准cmd中是否有其他方法?
它应该是一个不需要来自Cygwin或任何其他非标准命令的触摸命令的方法。 该命令需要从脚本运行,因此不能使用击键。
如何在DOS/Windows命令行创建一个空文件?
我试着:
copy nul > file.txt
但是它总是显示文件被复制了。
在标准cmd中是否有其他方法?
它应该是一个不需要来自Cygwin或任何其他非标准命令的触摸命令的方法。 该命令需要从脚本运行,因此不能使用击键。
当前回答
还有其他简单的方法来创建文件。
例如,您可以创建文件并从cmd中使用记事本打开它
notepad newFile.txt
这将提示您没有这样的文件,如果您想将其创建为一个新文件。
您可以像这样创建任何类型的文件。
例如,
notepad newFile.js
OR
notepad newFile.py
不仅是记事本,你还可以使用其他应用程序来这样做。例如,您可以使用Visual Studio代码来创建和打开新文件。
例如,
code newFile.py
这将创建一个新的Python文件,并在vs code中打开它(如果你安装了vs code)。
您还可以使用此方法创建其他类型的文件。
其他回答
您可以使用旧命令
copy con file_name.ext
不要打任何东西。按F6保存即可。然而,它会打印“文件复制”,但当你打开文件时,它将是空的。
Luc Vu或Erik Konstantopoulos指出:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
“如何从批处理文件创建空文本文件?”(2008)还指出:
type NUL > EmptyFile.txt
# also
echo. 2>EmptyFile.txt
copy nul file.txt > nul # also in qid's answer below
REM. > empty.file
fsutil file createnew file.cmd 0 # to create a file on a mapped drive
Nomad提到一个原创的例子:
C:\Users\VonC\prog\tests>aaaa > empty_file
'aaaa' is not recognized as an internal or external command, operable program or batch file.
C:\Users\VonC\prog\tests>dir
Folder C:\Users\VonC\prog\tests
27/11/2013 10:40 <REP> .
27/11/2013 10:40 <REP> ..
27/11/2013 10:40 0 empty_file
本着同样的精神,塞缪尔在评论中建议:
我用的最短的一个基本上是Nomad的:
.>out.txt
它会给出一个错误:
'.' is not recognized as an internal or external command
但是这个错误是在stderr上。>只重定向没有产生任何东西的stdout。 因此会创建一个空文件。 这里可以忽略错误消息。或者,就像Rain的回答一样,重定向到NUL:
.>out.txt 2>NUL
(原答案,2009年11月)
echo.>filename
(echo ""实际上会把""放入文件!echo中没有'。’会把“Command ECHO activated”放在文件中…)
注意:结果文件不是空的,但包含一个返回行序列:2字节。
这个讨论指向一个真正的空文件的真正批处理解决方案:
<nul (set/p z=) >filename
dir filename
11/09/2009 19:45 0 filename
1 file(s) 0 bytes
“<nul”向set/p命令输出一个空响应,这将导致 变量保持不变。与通常的set/p一样,字符串指向 等号的右侧显示为提示符,没有CRLF。
因为这里“等号右边的字符串”是空的……结果是一个空文件。
cd. >文件名的区别(在Patrick Cuff的回答中提到过,也会产生一个0字节长度的文件)是这个“重定向位”(<nul…trick)可以用来回声行没有任何CR:
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
dir命令应该指示文件大小为11字节:"helloworld!"。
echo "" > filename
我相信这适用于Windows/DOS,但我最后一次使用这两种操作都是很久以前的事了。我确实知道一个事实,它基本上适用于任何POSIX兼容的操作系统。
还有另一种方法:
cd . > filename
call>file.txt
这是我知道的最干净的方法。