如何在DOS / Windows命令行中创建空文件?
我试过了:
copy nul > file.txt
但它始终显示文件已被复制。
标准cmd中还有其他方法吗?
它应该是一种不需要Cygwin的touch命令或任何其他非标准命令的方法。 该命令需要从脚本运行,因此无法使用击键。
答案 0 :(得分:512)
没有重定向,Luc Vu或Erik Konstantopoulos point out来:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
“How to create empty text file from a batch file?”(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
本着同样的精神,Samuel建议in the comments:
我使用的最短的基本上是Nomad的那个:
.>out.txt
确实会出错:
'.' is not recognized as an internal or external command
但这个错误发生在stderr上。并且>
仅重定向stdout,其中<em> nothing 已生成
因此创建了一个空文件。这里可以忽略错误消息。
(原始答案,2009年11月)
echo.>filename
(echo ""
实际上会将“”放在文件中!echo
没有'。'会将“Command ECHO activated
”放在文件中...)
注意:生成的文件不是为空,但包含一个返回行序列:2个字节。
此discussion指向真正的空文件的批处理解决方案:
<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's answer中提到并且还产生一个0字节长度的文件)是这个“重定向位”(<nul...
技巧)可用于回送没有任何CR的行:
<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt
dir命令应将文件大小指示为12个字节:“
hello world!
”。
答案 1 :(得分:254)
试试这个:
type NUL > 1.txt
这肯定会创建一个空文件。
答案 2 :(得分:94)
这是另一种方式:
cd. > filename
答案 3 :(得分:74)
如果你真的想要一个完全空的文件,没有任何输出到stdout,你可以作弊:
copy nul file.txt > nul
只需将stdout重定向到nul,副本的输出就会消失。
答案 4 :(得分:43)
打开文件:
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
答案 5 :(得分:31)
在我的帖子上阅读评论,我不得不承认我没有正确地阅读这个问题。
在Windows命令行中,一种方法是使用fsutil:
fsutil file createnew <filename> <size>
一个例子:
fsutil file createnew myEmptyFile.txt 0
以下是* nix命令行。
touch filename
此命令会更改文件的修改日期,或者在找不到文件时创建文件。
答案 6 :(得分:25)
echo "" > filename
我相信这适用于Windows / DOS,但我最近的实践经验是很久以前的事了。我确实知道它基本上适用于任何POSIX兼容的操作系统。
答案 7 :(得分:21)
call>file.txt
这是我所知道的最干净的方式。
答案 8 :(得分:11)
你可以自己动手。
//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;
}
答案 9 :(得分:7)
cd > filename.cfg
在C:/ Program Files中创建文件时有效,您无法直接创建文件。
答案 10 :(得分:6)
复制con SomeFile.txt 输入
Ctrl-Z 输入
答案 11 :(得分:5)
试试这个:abc > myFile.txt
首先,它将在当前工作目录中创建名为myFile.txt
的文件(在命令提示符下)。然后它将运行命令abc
,这不是有效命令。通过这种方式,您获得了一个名为myFile.txt
的新空文件。
答案 12 :(得分:5)
在命令提示符中使用copy > your_file_name.extension
喜欢
P:\excecise> copy > Sample.txt
答案 13 :(得分:5)
另一种创建零字节文件的方法:
break > "file.txt"
答案 14 :(得分:4)
type nul>filename
将创建一个新的空文件。
更新:copy nul filename
也无法重定向(更明显的解决方案)。
答案 15 :(得分:4)
您可以使用旧命令
copy con file_name.ext
不要输入任何内容,只需按F6保存即可,但是会打印“文件复制”,但是当你打开文件时,它会是空的
答案 16 :(得分:4)
你也可以使用:
echo. 2>foo
echo.
的调试输出几乎肯定是空的。
答案 17 :(得分:3)
这对我有用,
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命令,也会在目录中创建文件。
答案 18 :(得分:3)
另一种方式:
copy nul 2>empty_file.txt
答案 19 :(得分:3)
在Windows上 我试过这个
echo off > fff1.txt
并创建了一个名为 fff1.txt 的文件,文件大小为0kb
我没有找到除此之外的任何可能创建空文件的命令。
注意:您必须位于要创建文件的目录中。
答案 20 :(得分:3)
所以你可以用
创建一个空文件'' > newfile.txt
导航到该目录并在PowerShell窗口中键入以上命令。
请注意,这不适用于Windows命令提示符。
答案 21 :(得分:2)
我读过许多帖子,但这不是最简短的方法。
请使用命令:
>copy /b NUL empty_file.txt
答案 22 :(得分:2)
要创建任何类型的文件,您可以使用以下代码
类型nul>(文件名)。(文件类型)
例如。如果要创建文本文件,则
输入nul> demo.txt
如果您要创建一个javascript文件,那么
输入nul> demo.js
答案 23 :(得分:2)
我刚试过Windows
copy con file.txt
然后按 Enter 键然后按 Ctrl + Z Enter
它对我有用。
对于Ubuntu,我通常使用VI命令创建文件
vi file.txt
它将打开文件,然后按 ESC 键,然后键入:wp ,然后按输入键。它将创建一个包含空数据的新文件。
答案 24 :(得分:2)
答案 25 :(得分:2)
echo '' > %1
的bat文件。 (将文件命名为touch.bat)touch temp.txt
创建temp.txt文件)查看this文章了解详情。
答案 26 :(得分:1)
今天我发现了一个新的:)
这将更改命令行窗口标题,但也会创建一个空文件。
title > file.txt
答案 27 :(得分:1)
.>>file.txt
>>
将STDOUT
附加到文件中.
只是将空的STDOUT
传递给>>
的错误命令但是,您会在STDERR
中看到CMD
的输出:
'。不被识别为内部或外部命令,可操作 程序或批处理文件。
您可以通过将STDERR
重定向到NUL
来抑制此错误消息(如果需要)。
.>>file.txt 2>nul
答案 28 :(得分:1)
以管理员模式运行CMD并输入:
NUL > file_name.extention
或者您输入此
echo .> file_name.extention
答案 29 :(得分:1)
这是另一种方式:
rem/ > file.ext
斜杠/
是强制性的;没有它,重定向部分被rem
注释掉。
答案 30 :(得分:0)
首先创建您的文件,使其存在:
echo . > myfile.txt
然后使用copy
命令用空版本覆盖创建的文件:
copy /y nul myfile.txt
答案 31 :(得分:0)
echo.|set /p=>file
echo.
禁止“激活命令ECHO”
|set /p=
阻止换行(文件现在是0字节)
答案 32 :(得分:0)
作为Windows上的VIM用户,我无法在此问题主题中找到答案。
作为this thread的解决方案,请先安装gvim 在安装过程中,请记得选中&#34;创建.bat文件以供命令行使用&#34;如下所示。
某些bat文件如vim.bat和gvim.bat将安装在 C:\ Windows 下。 如果未完成,请将 C:\ Windows 添加到系统路径。
重新启动 cmd.exe 并键入gvim empty_file.txt
,您将启动gvim以从头开始编辑空文件。如果你不想离开你的命令提示符&#34;控制台,改为输入vim empty_file.txt
。
希望这个答案可以帮助那些想要在创建空文件时从Windows命令提示符启动VIM的人。
答案 33 :(得分:0)
还有其他简单的方法来创建文件。
例如,您可以从 cmd
创建文件并使用 notepad 打开它notepad newFile.txt
这将提示您没有这样的文件,如果您想将其创建为新文件。
您可以像这样创建任何类型的文件。
例如
notepad newFile.js
或
notepad newFile.py
不仅是记事本,您还可以使用其他应用来执行此操作。例如,您可以使用 Visual Studio Code 创建和打开新文件。
例如
code newFile.py
这将创建一个新的 Python 文件并在 vs 代码中打开它(如果你安装了 vs 代码)。
您也可以使用此方法创建其他类型的文件。