目录中多个文件的大小 [英] Size of Multiple Files in a directory

查看:89
本文介绍了目录中多个文件的大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在入站位置有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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆