目录中多个文件的大小 [英] Size of Multiple Files in a directory
问题描述
我在入站位置有6个文件:文件名是这样的 -
LS_PRSAHD_XXXX.txt
LS_PRSAHD_XXXX.txt
LS_PRSADT_XXXX.txt
LS_PRSADT_XXXX.txt
LS_PRSATD_XXXX.txt
LS_PRSATD_XXXX.txt
我想拥有总共6个文件批量文件的大小。到目前为止,我在('dir / b / ad\\LOC \INBOUND \ LS_PRSAHD _ * .txt中为/ f %% i尝试了以下
^ | find / c / v')执行@call设置fileSizeHD = %% ~zi
/ f %% j in('dir / b / ad\\LOC \\ \\ _BBOUND \ LS_PRSADT _ * .txt^ | find / c / v')do @call set filesizeDT = %% ~zj
for / f %% k in('dir / b / ad\\LOC\INBOUND\LS_PRSATD _ * .txt^ | find / c / v')do @call set filesizeTD = %% ~zk
set / a Total =%fileSizeHD%+%fileSizeDT%+%fileSizeTD%
set / a KB =(%Total%/ 1024)+1
echo%KB%
set size =Websales文件大小:%KB%KB
echo文件大小:%size%>>%logfile%
但这只是一组LS_PRSAHD,DT和TD文件,但在目录中我有多个HD,DT和TD文件。我想计算该位置中所有文件的总大小。怎么做
我认为我不会将其作为任何客户的BAT文件解决方案实现,但这里有一个可用的批处理文件。
REM将之前的任何值清零
set / a fileSizeHD = 0
set / a fileSizeDT = 0
set / a fileSizeTD = 0
REM汇总所选文件的文件大小
for / f %% i in('dir / b / ad\\LOC \INBOUND \ LS_PRSAHD_ * .txt')在/'dir / b / ad\\LOC \INBOUND \ LS_PRSADT_ *中为/ f %% j设置/ fileSizeHD = %% ~zi + fileSizeHD
。 txt')为('dir / b / ad\\LOC \INBOUND \ LS_PRSATD _ * .txt中的/ f %% k设置/ filesizesDT = %% ~zj + fileSizeDT
')设置/ a filesizeTD = %% ~zk + filesizeTD
REM计算总KB值
设置/ a总计=%fileSizeHD%+%fileSizeDT%+%fileSizeTD%
set / a KB =(%总计%/ 1024)+1
echo%KB%
set size =Websales文件大小:%KB%KB
echo文件大小:%size%>> ;%日志文件%
I am having 6 files in Inbound location : File names are like this -
LS_PRSAHD_XXXX.txt
LS_PRSAHD_XXXX.txt
LS_PRSADT_XXXX.txt
LS_PRSADT_XXXX.txt
LS_PRSATD_XXXX.txt
LS_PRSATD_XXXX.txt
I want to have the size of total 6 files thorugh batch file. So far I tried the below
for /f %%i in ('dir /b /a-d "\\LOC\INBOUND\LS_PRSAHD_*.txt" ^| find /c /v ""') do @call set fileSizeHD=%%~zi for /f %%j in ('dir /b /a-d "\\LOC\INBOUND\LS_PRSADT_*.txt" ^| find /c /v ""') do @call set filesizeDT=%%~zj for /f %%k in ('dir /b /a-d "\\LOC\INBOUND\LS_PRSATD_*.txt" ^| find /c /v ""') do @call set filesizeTD=%%~zk set /a Total=%fileSizeHD%+%fileSizeDT%+%fileSizeTD% set /a KB=(%Total%/1024)+1 echo %KB% set size="Websales File Size: %KB% KB" echo File Size : %size% >>%logfile%
But This is taking only one set of LS_PRSAHD,DT and TD file but in the directory I have multiple HD,DT and TD files. I want to calculate the total size of all the files in the location. How to do it
I don't think I would implement this as a BAT file solution for any of my clients but here is a batch file that works.
REM Zero out any previous values set /a fileSizeHD=0 set /a fileSizeDT=0 set /a fileSizeTD=0 REM Sum up file sizes for selected files for /f %%i in ('dir /b /a-d "\\LOC\INBOUND\LS_PRSAHD_*.txt"') do set /a fileSizeHD=%%~zi + fileSizeHD for /f %%j in ('dir /b /a-d "\\LOC\INBOUND\LS_PRSADT_*.txt"') do set /a filesizeDT=%%~zj + fileSizeDT for /f %%k in ('dir /b /a-d "\\LOC\INBOUND\LS_PRSATD_*.txt"') do set /a filesizeTD=%%~zk + filesizeTD REM Compute Total KB Value set /a Total=%fileSizeHD%+%fileSizeDT%+%fileSizeTD% set /a KB=(%Total%/1024)+1 echo %KB% set size="Websales File Size: %KB% KB" echo File Size : %size% >>%logfile%
这篇关于目录中多个文件的大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!