标题: [文本处理] 【有难度的批处理】某个固定的文件夹如何获取里面当天生成的文件大小 [打印本页]
作者: 2403092835 时间: 2018-5-24 21:22 标题: 【有难度的批处理】某个固定的文件夹如何获取里面当天生成的文件大小
本帖最后由 2403092835 于 2018-5-24 21:24 编辑
百度查阅了很多资料,没有相关的案例,具体想实现如下功能:
有个固定的文件夹,里面每天都会生成备份文件,生成的文件数量不定,名字也不定;现在想获取里面当天生成的文件名,并且获取总文件的大小,以G为单位
请问这个批处理如何实现,提前感谢
作者: yhcfsr 时间: 2018-5-25 09:05
本帖最后由 yhcfsr 于 2018-5-25 21:19 编辑
powershell- $cd='d:\test';
- $files=(dir $cd -r -force |?{$_.CreationTime.Date -eq (Get-Date).Date});
- foreach($file in $files){
- $file.fullname;
- $size+=$file.Length;
- };
- '今天创建的文件共: '+"{0:n2}" -f ($size/1GB)+' GB';
复制代码
BAT+POWERSHELL- @echo off
- powershell ^
- $cd='d:\test';^
- $size=$null;^
- $files=(dir $cd -r -force ^|?{$_.CreationTime.Date -eq (Get-Date).Date});^
- foreach($file in $files){^
- $file.fullname;^
- $size+=$file.Length;^
- };^
- '今天创建的文件共: '+'{0:n2}' -f ($size/1GB)+' GB';^
- exit
- pause
复制代码
回复3楼- @echo off
- set "sum=0"&set "sd=d:\test"
- cd /d "%sd%"
- for /r %%a in (*) do (
- for /f "delims= " %%b in ('dir /a-d/tc "%%a"^|findstr /ri "%date%"') do (
- echo;%%a
- call,set "sum=%%sum%%+%%~za"
- )
- )
- set "command=powershell -c '{0:n2}' -f ((%sum%^)/1GB^)"
- for /f "delims= " %%a in ('%command%') do echo;今天创建的文件共: %%a GB
- pause
复制代码
作者: 2403092835 时间: 2018-5-25 19:41
回复 2# yhcfsr
非常感谢你,朋友。
代码简洁明了,实际测试完美运行。
但是我的其他实现方式都是用批处理,我想把powershell的输出参数传给批处理,类似于如下代码:- @echo off
- powershell ^
- $cd='d:\test';^
- $size=$null;^
- $files=(dir $cd -r -force ^|?{$_.CreationTime.Date -eq (Get-Date).Date});^
- foreach($file in $files){^
- $file.fullname;^
- $size+=$file.Length;^
- };^
- '今天创建的文件共: '+'{0:n2}' -f ($size/1GB)+' GB';^
- exit
-
- echo %file.fullname%
- echo %size%
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |