有人能记得使用 BAT 文件在 MSDOS 中创建空文件的命令是什么吗?
13 回答
复制 NUL EmptyFile.txt
DOS 在每个目录中都有一些特殊文件(实际上是设备),NUL
相当于 UNIX 的/dev/null
: 它是一个始终为空的神奇文件,并且会丢弃您写入的任何内容。这是其他一些列表;CON
偶尔也有用。
为了避免有任何输出,您可以使用
复制 /y NUL EmptyFile.txt >NUL
/y
防止copy
在输出到时提出您看不到的问题NUL
。
echo. 2>EmptyFile.txt
type NUL > EmptyFile.txt
在阅读了前两篇文章后,我想到了这两者的融合。好像干净了一点。无需担心重定向“复制的 1 个文件”。message to NUL
,就像上一篇文章一样,它旁边看起来不错ECHO OutputLineFromLoop >> Emptyfile.txt
,通常会出现在批处理文件中。
我从其他答案中收集的技术:
使 0 字节文件成为一种非常清晰、向后兼容的方式:
type nul >EmptyFile.txt
想法来自:匿名,Danny Backett,可能还有其他人,我自己受到JdeBP 工作的启发
另一种方式是 0 字节文件,它是向后兼容的:
REM. >EmptyFile.txt
想法来自:约翰内斯
一个 0 字节文件,也是向后兼容的第 3 路:
echo. 2>EmptyFile.txt
想法来自:TheSmurf
自 Windows 2000 以来可能可用的系统方式为 0 字节文件:
fsutil file createnew EmptyFile.txt 0
想法来自:Emm
一个 0 字节的文件覆盖只读文件
ATTRIB -R filename.ext>NUL
(CD.>filename.ext)2>NUL
想法来自:版权
单个换行符(2 个字节:0x0D 0x0A
以十六进制表示法,或者写为\r\n
):
echo.>AlmostEmptyFile.txt
注意:和之间没有空格。echo
.
>
想法来自:如何在批处理文件中回显换行符?
编辑似乎任何重定向到文件的无效命令都会创建一个空文件。呵呵,特色!兼容性:未知
TheInvisibleFeature <nul >EmptyFile.txt
一个 0 字节的文件:无效的命令/具有随机名称(兼容性:uknown):
%RANDOM%-%TIME:~6,5% <nul >EmptyFile.txt
来自:Hung Huynh 的随机来源
编辑 2 Andriy M指出了通过无效命令实现这一目标的可能最有趣/最发人深省的方法
一个 0 字节的文件:无效的命令/时髦的方式(兼容性:未知)
*>EmptyFile.txt
想法来自:Andriy M
一个 0 字节的文件 4th-coming 方式:
break > file.txt
想法来自:foxidrive感谢Double Gras的评论!
快速移动。> 空文件
如果要写入的文件可能已经存在并且是只读的,请使用以下代码:
ATTRIB -R filename.ext
CD .>filename.ext
如果不存在文件,只需执行以下操作:
CD .>filename.ext
(根据 DodgyCodeException 的评论更新/更改代码)
为了抑制可能出现的任何错误:
ATTRIB -R filename.ext>NUL
(CD .>filename.ext)2>NUL
fsutil file createnew file.cmd 0
还有一个要添加到书中 - 简短而甜美的打字。
break>file.txt
break>"file with spaces in name.txt"
您可以使用TYPE
命令而不是COPY
. 试试这个:
TYPE File1.txt>File2.txt
哪里File1.txt
是空的。
您也可以使用如下SET
方式创建一个空文件byte
set x=x > EmptyFile.txt
或者,如果您不想创建额外的变量,请重新分配现有变量,例如
set PROMPT=%PROMPT% > EmptyFile.txt
或像这样:
set "PROMPT=%PROMPT%" > EmptyFile.txt
有无限的方法。
什么都不输出的命令:
break
cls
color
goto
pushd
popd
prompt
title
奇怪的命令:
CD.
REM.
@echo off
cmd /c
START >FILE
过时的print
命令会生成一个空白文件:
print /d:EMPTY_TEXT_FILE nul
最简单的方法是:
echo. > Filename.txt
重要的:
如果不设置编码,很多软件都会崩溃。git 是一个非常流行的例子。
Set-Content "your_ignore_file.txt" .gitignore -Encoding utf8
这是区分大小写的并强制 utf8 编码!