如何创建循环空文件夹
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 <nul ...
。
@AndriyM 谢谢你是对的我做了编辑!没有注意到,因为有趣的是它与错误的一起工作。这可能意味着重定向到文件名的任何无效命令都会创建一个空文件!刚刚尝试使用NonExistentCommand <nul >EmptyFile.txt
并且成功了
因为依赖硬编码的命令名称并期望它是“无效的”是不安全的,所以我添加了一个随机命令名称选项
还有一个:break > file.txt
,道具foxidrive
如果你需要“必须存在但不应该被截断”,大多数命令都可以与>>
一起使用(就像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>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. > 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,或任何你可能使用的)中......跨度>以上是关于如何创建循环空文件夹的主要内容,如果未能解决你的问题,请参考以下文章