[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【有难度的批处理】某个固定的文件夹如何获取里面当天生成的文件大小

本帖最后由 2403092835 于 2018-5-24 21:24 编辑

百度查阅了很多资料,没有相关的案例,具体想实现如下功能:
有个固定的文件夹,里面每天都会生成备份文件,生成的文件数量不定,名字也不定;现在想获取里面当天生成的文件名,并且获取总文件的大小,以G为单位
请问这个批处理如何实现,提前感谢

本帖最后由 yhcfsr 于 2018-5-25 21:19 编辑

powershell
  1. $cd='d:\test';
  2. $files=(dir $cd -r -force |?{$_.CreationTime.Date -eq (Get-Date).Date});
  3. foreach($file in $files){
  4. $file.fullname;
  5. $size+=$file.Length;
  6. };
  7. '今天创建的文件共: '+"{0:n2}" -f ($size/1GB)+' GB';
复制代码
BAT+POWERSHELL
  1. @echo off
  2. powershell ^
  3. $cd='d:\test';^
  4. $size=$null;^
  5. $files=(dir $cd -r -force ^|?{$_.CreationTime.Date -eq (Get-Date).Date});^
  6. foreach($file in $files){^
  7. $file.fullname;^
  8. $size+=$file.Length;^
  9. };^
  10. '今天创建的文件共: '+'{0:n2}' -f ($size/1GB)+' GB';^
  11. exit
  12. pause
复制代码
回复3楼
  1. @echo off
  2. set "sum=0"&set "sd=d:\test"
  3. cd /d "%sd%"
  4. for /r %%a in (*) do (
  5. for /f "delims= " %%b in ('dir /a-d/tc "%%a"^|findstr /ri "%date%"') do (
  6. echo;%%a
  7. call,set "sum=%%sum%%+%%~za"
  8. )
  9. )
  10. set "command=powershell -c '{0:n2}' -f ((%sum%^)/1GB^)"
  11. for /f "delims= " %%a in ('%command%') do echo;今天创建的文件共: %%a GB
  12. pause
复制代码
QQ 33892006

TOP

回复 2# yhcfsr


非常感谢你,朋友。
代码简洁明了,实际测试完美运行。
但是我的其他实现方式都是用批处理,我想把powershell的输出参数传给批处理,类似于如下代码:
  1. @echo off
  2. powershell ^
  3. $cd='d:\test';^
  4. $size=$null;^
  5. $files=(dir $cd -r -force ^|?{$_.CreationTime.Date -eq (Get-Date).Date});^
  6. foreach($file in $files){^
  7. $file.fullname;^
  8. $size+=$file.Length;^
  9. };^
  10. '今天创建的文件共: '+'{0:n2}' -f ($size/1GB)+' GB';^
  11. exit
  12. echo %file.fullname%
  13. echo %size%
  14. pause
复制代码

TOP

返回列表