如何创建循环空文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建循环空文件夹相关的知识,希望对你有一定的参考价值。

参考技术A 运行CMD,打开控制台,输入:
mk
../
mk
.../
mk
..../
(mk命令用来创建文件夹的,在常规方法新建文件夹是不能输入制殊字符,所以在控制台输入)然后把../和.../文件夹都删了,..../是不是再打不开了

如何从批处理文件创建空文本文件?

【中文标题】如何从批处理文件创建空文本文件?【英文标题】:How to create empty text file from a batch file? 【发布时间】:2010-09-17 15:13:53 【问题描述】:

有人记得在 MSDOS 中使用 BAT 文件创建空文件的命令是什么吗?

【问题讨论】:

也在***.com/questions/1702762,“如何在命令行创建一个空文件?”。 你不会混淆 DOS 和 cmd.exe 吧? 自述:Set-Content "your_file.txt" .gitignore -Encoding utf8 这是区分大小写的并强制 utf8 编码! (我也发布了这个作为答案)。 【参考方案1】:
复制 NUL EmptyFile.txt

DOS 在每个目录中都有一些特殊文件(实际上是设备),NUL 相当于 UNIX 的 /dev/null:它是一个神奇的文件,它总是空的,并且会丢弃您写入的任何内容。这是其他一些人的list; CON 偶尔也有用。

为了避免有任何输出,你可以使用

copy /y NUL EmptyFile.txt >NUL

/y 阻止copy 在输出到NUL 时询问您看不到的问题。

【讨论】:

+1 - 问题确实声明了一个 empty 文件,因此接受的答案是错误的。 DannySmurf 的解决方案实际上确实创建了一个空文件——换行符进入标准输出,没有任何内容进入标准错误(直接进入新文件)。但无论如何感谢您的 +1 type nul > EmptyFile.txt 是最短的解决方案。你的答案仍然比接受的解决方案更好,因为你的文件真的是空的。 +1 警告:是的,问题是关于如何创建一个空文件,但通常你想“确保文件存在”。使用copy /Y NUL 命令时,它可能会删除现有内容。如果你习惯了 Unix 的touch 命令,这可能根本不是你所期望的。)在这方面使用type NUL >> emptyfile.txt 更安全。 我在CON 上找不到任何信息,除了这个答案中链接的信息。有人可以分享一些简单的阅读吗?【参考方案2】:
echo. 2>EmptyFile.txt

【讨论】:

这与标准输出的换行符相呼应,但是......我的回答没有。 有时是相关的;在我想到只复制 NUL(或键入 NUL>file)以获取 0 字节文件之前,我曾经有接触过。 :-) 要合并 ephemient 的答案和这个,你可以这样做:"echo.>NUL 2>EmptyFile.txt" 以达到相同的结果而不输出换行符 为什么.echo. @Reegan 如果您使用echo 2 而不使用.,控制台将显示“ECHO 已关闭”。使用 echo. 2 通过只显示换行符有效地使控制台输出静音。【参考方案3】:
type NUL > EmptyFile.txt

在阅读了前两篇文章后,我想到了这两者的结合。好像干净了一点。无需担心重定向“复制的 1 个文件”。向NUL 发送消息,就像之前的帖子一样,并且在通常会出现在批处理文件中的ECHO OutputLineFromLoop >> Emptyfile.txt 旁边看起来不错。

【讨论】:

+1 这是第一个想到的自然问题,而不是 stderr 等的发明。 你是对的。此方法避免了复制命令上的 /y 标志。 简短易懂。这里的其他一些解决方案不会创建零字节的新文件! 这应该是公认的答案。尽可能干净和简单。【参考方案4】:

我从其他答案中收集到的技巧:

制作 0 字节文件是一种非常清晰、向后兼容的方式:

type nul >EmptyFile.txt

想法来自:anonymous、Danny Backett,可能还有其他人,我的灵感来自JdeBP's work

另一种方式的 0 字节文件,它是向后兼容的:

REM. >EmptyFile.txt

想法来自:Johannes

第三种方式的 0 字节文件也是向后兼容的:

echo. 2>EmptyFile.txt

想法来自:TheSmurf

0字节文件系统方式probably自Windows 2000起可用:

fsutil file createnew EmptyFile.txt 0

想法来自:Emm

一个 0 字节的文件覆盖只读文件

ATTRIB -R filename.ext>NUL
(CD.>filename.ext)2>NUL

想法来自:copyitright

一个换行符(2个字节:0x0D 0x0A in hex notation,或者写成\r\n):

echo.>AlmostEmptyFile.txt

注意:没有echo.> 之间有空格。

想法来自:How can you echo a newline in batch files?


edit似乎任何无效命令重定向到一个文件都会创建一个空文件。呵呵,特色! 兼容性:未知

TheInvisibleFeature <nul >EmptyFile.txt

0 字节文件:无效命令/随机名称(兼容性:未知):

%RANDOM%-%TIME:~6,5% <nul >EmptyFile.txt

via: great source for random by Hung Huynh

edit 2 Andriy M points out 可能是通过无效命令实现此目的最有趣/最令人发指的方式

0 字节文件:无效命令/时髦方式(兼容性:未知)

*>EmptyFile.txt

想法来自:Andriy M

一个 0 字节的文件 4th-coming way

break > file.txt

想法来自:foxidrive 感谢comment of Double Gras!

【讨论】:

实际上是type nul ...,而不是type &lt;nul ... @AndriyM 谢谢你是对的我做了编辑!没有注意到,因为有趣的是它与错误的一起工作。这可能意味着重定向到文件名的任何无效命令都会创建一个空文件!刚刚尝试使用NonExistentCommand &lt;nul &gt;EmptyFile.txt 并且成功了 因为依赖硬编码的命令名称并期望它是“无效的”是不安全的,所以我添加了一个随机命令名称选项 还有一个:break &gt; file.txt,道具foxidrive 如果你需要“必须存在但不应该被截断”,大多数命令都可以与&gt;&gt;一起使用(就像Unix touch一样)【参考方案5】:

快速移动。 > 空文件

【讨论】:

我被困在 Windows CE 上,这是创建和清空文件的唯一答案!其他方法要么添加一个空行,要么根本不起作用...... 这个方案唯一的问题是,如果当前目录下有一个叫REM的文件,你输入REM.,cmd会响应"'rem.'未被识别为内部或外部命令、可运行程序或批处理文件。” @DodgyCodeException,使用rem/ 而不是rem. 解决了这个问题... @aschipfl 谢谢,这很有趣。同样有趣的是,2010 年的这个答案如何使 cmets 彼此相隔数年。缓慢的对话!【参考方案6】:

如果要写入的文件可能已经存在并且是只读的,请使用以下代码:

ATTRIB -R filename.ext
CD .>filename.ext

如果不存在文件,只需执行以下操作:

CD .>filename.ext

(根据 DodgyCodeException 的注释更新/更改代码)

为了抑制可能出现的任何错误:

ATTRIB -R filename.ext>NUL
(CD .>filename.ext)2>NUL

【讨论】:

这个解决方案唯一的问题是,如果当前目录下有一个名为CD(无扩展名)的文件,你输入CD.,cmd会响应“'CD.'未被识别为内部或外部命令、可运行程序或批处理文件。”如果您改为输入CD .(点前有一个空格),它将起作用。【参考方案7】:
fsutil file createnew file.cmd 0

【讨论】:

FSUTIL 实用程序要求您具有管理权限。 fsutil 不是 MS-DOS 中的标准实用程序。【参考方案8】:

还有一个要添加到书中的内容 - 简短而甜美。

break>file.txt
break>"file with spaces in name.txt"

【讨论】:

我想我们会跳过引号 @NamGVU 如果您选择使用长文件名元素(如空格或 & 等),引号将用于目标文件名。它们不是文件内容的一部分。 是的,我同意 ^^ 允许按照讨论更新您的。 @NamGVU 引号可以在有或没有长文件名的情况下保留。我猜如果它是用短文件名从命令行输入的,那么你不会想要不必要的输入。 我建议从这个答案中删除第二行。 IMO 这是迄今为止该问题的最佳答案,但第二行并没有真正增加价值,除非尝试使用它的人不知道命令行空白处理的基础知识。【参考方案9】:

您可以使用TYPE 命令代替COPY。试试这个:

TYPE File1.txt>File2.txt

File1.txt 为空。

【讨论】:

你也可以type NUL&gt;File2.txt 顺便说一句,如何获取 File1.txt?【参考方案10】:

您也可以使用SET 创建一个空的byte 文件,如下所示

set x=x > EmptyFile.txt

或者,如果您不想创建额外的变量,请重新分配现有变量,例如

set PROMPT=%PROMPT% > EmptyFile.txt

或者像这样:

set "PROMPT=%PROMPT%" > EmptyFile.txt

【讨论】:

【参考方案11】:

有无数种方法。

什么都不输出的命令:

break
cls
color
goto
pushd
popd
prompt
title

奇怪的命令:

CD.
REM.
@echo off
cmd /c
START >FILE

过时的print 命令会产生一个空白文件:

print /d:EMPTY_TEXT_FILE nul

【讨论】:

【参考方案12】:

最简单的方法是:

echo. &gt; Filename.txt

【讨论】:

这将创建一个文件,其中包含一个空格字符、一个回车字符和一个换行符——不是一个空文件。 值得看看我的答案(如下),因为它改变了编码。【参考方案13】:

重要提示:

如果不设置编码,很多软件都会崩溃。 git 是一个非常流行的例子。

Set-Content "your_ignore_file.txt" .gitignore -Encoding utf8 这是区分大小写的并强制utf8编码!

【讨论】:

编码与创建 empty 文件有何关系?空字节文件不需要任何编码,用 BOM(0 字节)标记它很棘手 @jeb 因为人们填充空文件,并且当填充的文件用作设置文件时,当它们不是 UTF8 时会产生错误。事实上,我会说人们几乎总是填写文件并且不会将它们留空,而且我不会使用任何其他方法来创建我后来打算更改的空白文件,因为我几乎总是想确定我的文件是UTF8。例如,github上的.git教程要求用户创建一个稍后填充的空白文件,另一种方法是创建一个具有奇怪Windows编码的文件。 @Wolfpack'08,文件编码没有存储在特殊属性或其他一些神奇的秘密区域,它只是通过它包含的数据来反映;如果没有数据,就不可能有编码…… @aschipfl 那么空白文件必须包含一些数据。如果您创建一个空白文件并显式标记 utf8,则该文件在稍后填充后工作;另一方面,如果您创建一个空白文件并表面上允许使用默认编码 (ASCII),那么当您稍后填充该文件时,它将破坏任何需要 UT8 编码的程序。我有这方面的第一手经验,任何人都可以测试它。不管你如何怀疑,这显然是正确的,并且可以容忍经验测试:我认为负面反馈是完全没有根据的,并且会损害这些重要信息的可访问性。证明它。 空白文件就是空白文件,里面没有数据;否则,它不会是空白的(空的,0 字节),不是吗?您似乎在使用版本控制工具 (git),它为每个文件存储一些元数据,显然包括其编码。但是空白文件本身肯定没有任何编码设置,无论是在数据区(0字节显然没有信息),还是在文件系统的文件表(FAT,NTFS,或任何你可能使用的)中......跨度>

以上是关于如何创建循环空文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个空的 zip 文件?

如何从批处理文件创建空文本文件?

如何在谷歌驱动器上创建空文件夹?

如何在 cmd(Windows) 上创建多个空文件

如何在for循环中将数据附加到空列表?

如何在 emacs 中创建一个空文件?