我使用以下命令:
for %F in (*) do @echo %F %~zF
为了仅创建文件名和大小的列表。输出如下所示:
a.txt 21
b.txt 72
3.txt 73
现在我的问题是如何将其转储到文件中?我试图在命令末尾添加> filename.txt
,但它只将最后一个条目转储到文件中。
这个问题:
for %F in (*) do @echo %F %~zF> filename.txt
。是 cmd 解释器将重定向视为 @echo
语句的一部分,而不是for
的一部分。 您可以使用>>
在每个循环迭代中追加,但这效率低下。 这实质上是在每次循环迭代时打开、追加和关闭文件。
更好的解决方案是仅打开一次输出文件进行写入,并保持打开状态,直到完成循环。 您可以通过将循环括在括号中来将重定向应用于外部循环。
> filename.txt (
for %F in (*) do @echo %F %~zF
)
或
> filename.txt (for %F in (*) do @echo %F %~zF)
。无论您喜欢哪个。
这样做:
>> filename.txt
有关命令行重定向的详细信息:
https://ss64.com/nt/syntax-redirection.html
命令>文件名 将命令输出重定向到文件
命令>>文件名追加到文件中