我想创建一个批处理文件,该文件获取文件夹中可用的zip文件大小,并将文件夹名称及其适当的文件大小保存在.CSV文件中。我使用了下面的命令,但我只得到1个输出,因为当循环结束时,最后的结果是在.CSV文件中获取的
for %%I in (*.txt) do @echo %%~nI,%%I >C:\Users\anoopn\Desktop\out.csv
我希望结果的格式为单元格中的大小和不同单元格中的整个路径
希望尽快得到答案
答案 0 :(得分:2)
(for %%I in (*.zip) do echo(%%~nI,%%~zI)>C:\Users\anoopn\Desktop\out.csv
要仅获取具有所有ZIP文件的计算大小的文件夹名称,请使用:
@ECHO OFF &SETLOCAL
FOR /f "tokens=3" %%a IN ('dir *.zip') DO (
CALL SET "size=%%free%%"
SET "free=%%a"
)
(ECHO(%cd%,%size%)>C:\Users\anoopn\Desktop\out.csv
答案 1 :(得分:0)
由于您正在查找.zip
个文件的列表,因此您可能不希望循环.txt
个文件。要附加到文件,您需要使用>>
而不是>
。
FOR %%I IN (*.zip) DO @ECHO %%~nI,%%~zI >> C:\Users\anoopn\Desktop\out.csv
更新:所以问题是如何递归在目录树中查找.zip
个文件,并输出用逗号分隔的路径和大小。可以这样做:
FOR /F %%I IN ('dir /s /b *.zip') DO @ECHO %%I,%%~zI >> C:\Users\anoopn\Desktop\out.csv
如果我在JDK 1.6文件夹中运行它,输出如下所示:
C:\dev\jdk16024\src.zip,19717891
C:\dev\jdk16024\jre\lib\deploy\ffjcext.zip,16801