如何在DOS / Windows命令行中创建一个空文件?
我试过了:
copy nul > file.txt
但它始终显示文件已被复制。
标准cmd中还有其他方法吗?
它应该是一种不需要Cygwin 的touch命令或任何其他非标准命令的方法。该命令需要从脚本运行,因此不能使用击键。
如何在DOS / Windows命令行中创建一个空文件?
我试过了:
copy nul > file.txt
但它始终显示文件已被复制。
标准cmd中还有其他方法吗?
它应该是一种不需要Cygwin 的touch命令或任何其他非标准命令的方法。该命令需要从脚本运行,因此不能使用击键。
Answers:
如果没有重定向,吕克·武或埃里克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
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,而没有产生任何结果。
因此,创建一个空文件。错误消息可以在这里忽略。
(原始答案,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
”通过管道nul
传递对set/p
命令的响应,这将导致所使用的变量保持不变。与一样set/p
,等号右边的字符串作为提示显示,没有CRLF。
由于此处的“等号右边的字符串”为空,因此结果为空文件。
与的区别cd. > filename
(在Patrick Cuff的答案中提到,并且还会产生一个0字节长的文件),这种“重定向的位”(<nul...
技巧)可以用于回显没有任何CR的行:
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
该
dir
命令应将文件大小指示为11个字节:“helloworld!
”。
echo.>filename
因为它将包含空格以及换行符。
rem
命令可避免创建其中带有空行的文件。
rem>filename
产生相同的结果(2个字节)
>
将stdout只out.txt
。因此,创建一个空文件。您可以在这种情况下忽略错误消息。
这是另一种方式:
cd. > filename
cd. > filename
不是为我工作,而是为cd > filename
工作!
cd . > filename.extension
您需要在cd
和.
如果您确实想要一个完全空的文件,而没有任何输出到stdout,则可以作弊:
copy nul file.txt > nul
只需将stdout重定向到nul,复制的输出就会消失。
type nul>file
将是另一种方式。
打开文件 :
type file.txt
新文件 :
Way 1 : type nul > file.txt
Way 2 : echo This is a sample text file > sample.txt
Way 3 : notepad myfile.txt <press enter>
编辑内容:
notepad file.txt
复制
copy file1.txt file1Copy.txt
改名
rename file1.txt file1_rename.txt
删除文件 :
del file.txt
阅读我帖子上的评论时,我不得不承认我没有正确地阅读问题。
在Windows命令行上,一种方法是使用fsutil:
fsutil file createnew <filename> <size>
一个例子:
fsutil file createnew myEmptyFile.txt 0
下面是* nix命令行。
touch filename
该命令更改文件的修改日期,如果找不到文件,则创建该日期。
> filename
,它也可以用于截断现有文件。
fsutil
需要管理权限。仅创建一个空文件就需要很多...
call>file.txt
这是我所知道的最干净的方法。
您可以编写自己的风格。
//touch.cpp
#include <fstream>
#include <iostream>
int main(int argc, char ** argv;)
{
if(argc !=2)
{
std::cerr << "Must supply a filename as argument" << endl;
return 1;
}
std::ofstream foo(argv[1]);
foo.close();
return 0;
}
复制con SomeFile.txt Enter
Ctrl-Z Enter
copy > your_file_name.extension
在命令提示符下使用
P:\excecise> copy > Sample.txt
您可以使用旧命令
copy con file_name.ext
不要输入任何内容,只需按F6键将其保存,但是它将打印“复制文件”,但是当您打开文件时,它将为空
要创建任何类型的文件,您可以使用以下代码
输入nul>(文件名)。(文件类型)
例如。如果要创建文本文件,则
键入nul> demo.txt
如果要创建一个javascript文件,则
输入nul> demo.js
这对我有用
echo > file.extension
这是我今天发现的另一种方法,从其他答案中得到了一些想法,但它确实有效
sometext > filename.extension
例如。
xyz > emptyfile.txt //this would create an empty zero byte text file
abc > filename.mp4 //this would create an zero byte MP4 video media file
这将在命令提示符下显示错误消息,
xyz
不是内部或外部命令,可操作程序或批处理文件。
但是我发现奇怪的是,即使该命令不是标准的Windows命令,也正在目录中创建文件。
在Windows上, 我尝试这样做
echo off > fff1.txt
然后创建了一个名为fff1.txt的文件,文件大小为0kb
除此以外,我没有找到其他可以创建空文件的命令。
注意:您必须位于要创建文件的目录中。
echo '' > %1
。(将文件命名为touch.bat)touch temp.txt
创建temp.txt文件)检查此文章以获取更多信息。