我正在尝试使用FOR / f命令来计算具有相同扩展名的多个文件的文件大小。到目前为止我有这个:
FOR /F "usebackq" %%A IN ('C:\Users\%username%\*.bat') DO set size=%%~zA
如果桌面下有3个批处理文件,而我的文档下有2个批处理文件,我希望批处理文件能够获得每个批处理文件的大小并同时显示所有5个文件。如果我只使用一个包含批处理文件的目录,那么我的命令工作正常,但我需要的只是包含子目录。我上面的当前行显示ECHO is off
因为路径C:\Users\%username%.
下没有批处理文件我的桌面上有批处理文件,我需要它包含它,因为它是一个子目录。如何让此命令包含子目录?
答案 0 :(得分:0)
循环文件(Recurse子文件夹)
语法
FOR /R [[drive:]path] %%parameter IN (set) DO command
关键
drive:path : The folder tree where the files are located.
set : A set of one or more files. Wildcards must be used.
If (set) is a period character (.) then FOR will
loop through every folder.
command : The command(s) to carry out, including any
command-line parameters.
%%parameter : A replaceable parameter:
in a batch file use %%G (on the command line %G)
此命令从[drive:]路径开始向下遍历文件夹树,并对每个匹配的文件执行DO语句。
如果未指定[drive:]路径,则默认为当前驱动器:path。
与FOR命令的其他变体不同,您必须在“set”中包含通配符(*或?)才能获得返回的一致结果。在许多情况下,您可以通过添加单个字符通配符来解决此问题,例如:如果你循环遍历多个文件夹以找到确切的文件名myfile.txt,你可以改为指定myfile.t?t
答案 1 :(得分:0)
dir更容易。
dir "%userprofile%\*.bat" /a /s
或只是尺寸
dir "%userprofile%\*.bat" /a /s|findstr /c:"File(s)"