Gre*_*ler 465 windows command-line cmd file
如何在DOS/Windows命令行中创建一个空文件?
我试过了:
copy nul > file.txt
Run Code Online (Sandbox Code Playgroud)
但它始终显示文件已被复制.
标准cmd中还有其他方法吗?
它应该是一种不需要Cygwin 的touch命令或任何其他非标准命令的方法.该命令需要从脚本运行,因此无法使用击键.
Von*_*onC 538
如果没有重定向,吕克·武或埃里克Konstantopoulos 点 出来到:
copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt
Run Code Online (Sandbox Code Playgroud)
" 如何从批处理文件创建空文本文件? "(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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
我使用的最短的基本上是Nomad的那个:
.>out.txt
Run Code Online (Sandbox Code Playgroud)
它确实给出了一个错误:
'.' is not recognized as an internal or external command
Run Code Online (Sandbox Code Playgroud)
但这个错误在stderr上.并且>只重定向stdout,没有生成任何内容.
因此创建了一个空文件.这里可以忽略错误消息.
(原始答案,2009年11月)
echo.>filename
Run Code Online (Sandbox Code Playgroud)
(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
Run Code Online (Sandbox Code Playgroud)
"
<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
Run Code Online (Sandbox Code Playgroud)
dir命令应将文件大小指示为12个字节:"
hello world!".
Pat*_*uff 100
这是另一种方式:
cd. > filename
Run Code Online (Sandbox Code Playgroud)
qid*_*qid 74
如果你真的想要一个完全空的文件,没有任何输出到stdout,你可以作弊:
copy nul file.txt > nul
Run Code Online (Sandbox Code Playgroud)
只需将stdout重定向到nul,副本的输出就会消失.
iCr*_*est 43
打开文件 :
type file.txt
Run Code Online (Sandbox Code Playgroud)
新文件 :
Way 1 : type nul > file.txt
Way 2 : echo This is a sample text file > sample.txt
Way 3 : notepad myfile.txt <press enter>
Run Code Online (Sandbox Code Playgroud)
编辑内容:
notepad file.txt
Run Code Online (Sandbox Code Playgroud)
复制
copy file1.txt file1Copy.txt
Run Code Online (Sandbox Code Playgroud)
改名
rename file1.txt file1_rename.txt
Run Code Online (Sandbox Code Playgroud)
删除文件 :
del file.txt
Run Code Online (Sandbox Code Playgroud)
nas*_*ash 32
阅读我的帖子上的评论,我不得不承认我没有正确地阅读这个问题.
在Windows命令行上,一种方法是使用fsutil:
fsutil file createnew <filename> <size>
Run Code Online (Sandbox Code Playgroud)
一个例子:
fsutil file createnew myEmptyFile.txt 0
Run Code Online (Sandbox Code Playgroud)
以下是*nix命令行.
touch filename
Run Code Online (Sandbox Code Playgroud)
此命令会更改文件的修改日期,或者在找不到文件时创建它.
Kri*_*ris 28
echo "" > filename
Run Code Online (Sandbox Code Playgroud)
我相信这适用于Windows/DOS,但我最近的实践经验是很久以前的.我确实知道它基本上适用于所有符合POSIX标准的操作系统.
nep*_*i12 22
call>file.txt
Run Code Online (Sandbox Code Playgroud)
这是我所知道的最干净的方式.
Pau*_*han 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;
}
Run Code Online (Sandbox Code Playgroud)
要创建任何类型的文件,您可以使用以下代码
type nul > (file_name).(file_type)
Run Code Online (Sandbox Code Playgroud)
例如,如果您想创建一个文本文件,那么
type nul > demo.txt
Run Code Online (Sandbox Code Playgroud)
如果你想创建一个 JavaScript 文件,那么
type nul > demo.js
Run Code Online (Sandbox Code Playgroud)
您可以使用旧命令
copy con file_name.ext
Run Code Online (Sandbox Code Playgroud)
不要输入任何内容。只需按下F6即可保存。但是,它会打印“文件已复制”,但当您打开该文件时,它将为空。
. >> file.txt
Run Code Online (Sandbox Code Playgroud)
>>将标准输出附加到文件中.只是将空标准输出传递给的错误命令>>但是,您将在以下位置看到标准错误的输出CMD:
'.' 不被识别为内部或外部命令、可操作程序或批处理文件。
您可以通过将标准错误重定向到NUL.
. >> file.txt 2> nul
Run Code Online (Sandbox Code Playgroud)
小智 5
试试这个:abc > myFile.txt
首先,它将myFile.txt在当前工作目录中创建一个名称文件(在命令提示符下).然后它将运行abc不是有效命令的命令.通过这种方式,您获得了一个名为的新空文件myFile.txt.
这对我有用,
echo > file.extension
Run Code Online (Sandbox Code Playgroud)
这是我今天发现的另一种方法。我从其他答案中得到了一些想法,但它奏效了:
sometext > filename.extension
Run Code Online (Sandbox Code Playgroud)
例如,
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
Run Code Online (Sandbox Code Playgroud)
这将在命令提示符中显示一条错误消息,
xyz 不是内部或外部命令、可运行的程序或批处理文件。
但我发现奇怪的是,即使该命令不是标准的 Windows 命令,也会在目录中创建文件。
尝试这个:
echo $null >> filename
Run Code Online (Sandbox Code Playgroud)
请参阅:相当于Linux中touch使用PowerShell创建空文件
小智 5
在 Windows 上
我尝试这样做
echo off > fff1.txt
Run Code Online (Sandbox Code Playgroud)
它创建了一个名为fff1.txt的文件,文件大小为 0 KB。
除此之外,我没有找到任何可以创建空文件的命令。
注意:您必须位于要创建文件的目录中。
小智 5
copy > your_file_name.extension在命令提示符中使用
P:\excecise> copy > Sample.txt
Run Code Online (Sandbox Code Playgroud)
所以你可以用创建一个空文件
'' > newfile.txt
Run Code Online (Sandbox Code Playgroud)
导航到目录,然后在PowerShell窗口中键入上面的命令。
请注意,这在Windows命令提示符下将不起作用。
还有其他简单的方法来创建文件。
例如,您可以创建文件并从cmd使用记事本打开它
notepad newFile.txt
Run Code Online (Sandbox Code Playgroud)
这将提示您没有这样的文件,以及是否要将其创建为新文件。
您可以创建任何类型的文件,如下所示。
例如,
notepad newFile.js
Run Code Online (Sandbox Code Playgroud)
或者
notepad newFile.py
Run Code Online (Sandbox Code Playgroud)
不仅是记事本,您还可以使用其他应用程序来执行此操作。例如,您可以使用Visual Studio Code创建和打开新文件。
例如,
code newFile.py
Run Code Online (Sandbox Code Playgroud)
这将创建一个新的 Python 文件并在 VS Code 中打开它(如果您安装了 VS Code)。
您还可以使用此方法创建其他类型的文件。
| 归档时间: |
|
| 查看次数: |
1049122 次 |
| 最近记录: |