如何在Windows命令行中创建一个空文件?

21 浏览
0 Comments

如何在Windows命令行中创建一个空文件?

如何在DOS/Windows命令行中创建空文件?

我尝试了:

copy nul > file.txt

但它总是显示已复制一个文件。

是否有标准cmd中的另一种方法?

它应该是一种不需要来自Cygwin或任何其他非标准命令的touch命令的方法。

该命令需要从脚本运行,因此不能使用按键。

admin 更改状态以发布 2023年5月22日
0
0 Comments

试试这个:

type NUL > 1.txt

这肯定会创建一个空文件。

0
0 Comments

没有重定向,Luc VuErik Konstantopoulos指向了:point out to:

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              .
27/11/2013  10:40              ..
27/11/2013  10:40                 0 empty_file

在相同的精神中,Samuel评论中建议使用更简短的方法:

我使用的最短的方法基本上与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个字节。


这个讨论指向一个真正空文件的批处理解决方案:

 filename
 dir filename
 11/09/2009  19:45                 0 filename
 1 file(s)                         0 bytes

""将一个nul响应管道到set/p命令,这将导致
所使用的变量保持不变。通常情况下,set/p右边的字符串
作为提示显示,没有CRLF。

由于这里“等号右边的字符串”为空...结果是一个空文件。


cd. > filename的区别(在Patrick Cuff的答案中提到,并且也可以生成一个0字节长度的文件)是这个“重定向位”(技巧)可以用来在没有任何CR的情况下回显行

out.txt
>out.txt
dir out.txt

dir命令应指示文件大小为11个字节:“helloworld!”。

0