Batch file 批处理文件以显示一系列类似命名文件的属性

Batch file 批处理文件以显示一系列类似命名文件的属性,batch-file,Batch File,我已经10年没有处理批处理文件了,但我发现自己需要列出一堆文件的文件大小,这些文件名为CG100.mpg,而不是CG999.mpg 必须有一种方法让批处理文件使用FOR循环逐个查看一系列具有类似名称的文件 如果您能够使用Python,那么以下功能将起作用: from os.path import getsize results = [('CG%d.mpg = ' % i) + str(getsize('CG%d.mpg' % i)) for i in range(100, 999)] pri

我已经10年没有处理批处理文件了,但我发现自己需要列出一堆文件的文件大小,这些文件名为CG100.mpg,而不是CG999.mpg


必须有一种方法让批处理文件使用FOR循环逐个查看一系列具有类似名称的文件

如果您能够使用Python,那么以下功能将起作用:

from os.path import getsize

results = [('CG%d.mpg = ' % i) + str(getsize('CG%d.mpg' % i)) for i in range(100, 999)]

print results
否则,对于批处理文件,您可以使用:


绝对有一种简单的方法可以通过使用帮助结尾处的FOR-read来获得结果-键入help FOR或FOR/?从命令行

您甚至不需要批处理文件。这一行程序将完全满足您在命令行上的要求:

for /l %N in (100 1 999) do @for %F in (GC%N.mpg) do @if exist %F echo %F size = %~zF
如果在批处理文件中使用该命令,请将所有%更改为%%

如果您只想列出与模式GC*.mpg匹配的所有文件的大小,则该命令更简单:


只能使用批处理文件吗?Python或Perl呢?FORFILES看起来很有前途,我不知道它的存在,所以谢谢你。我喜欢Python代码紧凑的外观,但我还没有学习或安装Python。您给出的第一个答案正是如果我记得如何使用变量作为文件名的一部分,我会做什么。你的第二个答案非常简洁。谢谢@RichHarrison-如果您的问题得到满意的回答,请不要忘记通过单击答案左上角附近的复选框来接受答案。这样做可以让其他人知道问题已经得到了回答,如果你花时间接受,则会给你2分,回答得15分。只能接受一个答案。一旦你获得15分,你将有权对任何你认为有用的答案进行投票,无论是对你的问题的回答,还是你在网站上找到的任何答案。你可以对同一个问题的多个答案进行投票。
for /l %N in (100 1 999) do @for %F in (GC%N.mpg) do @if exist %F echo %F size = %~zF
for %F in (GC*.mpg) do @echo %F size = %~zF