标题: [文件操作] 批处理如何检测两个指定文件夹里的同名文件的修改时间是否相同 [打印本页]
作者: wloliver 时间: 2019-7-30 18:20 标题: 批处理如何检测两个指定文件夹里的同名文件的修改时间是否相同
本帖最后由 pcl_test 于 2019-8-2 15:35 编辑
批处理如何判断A文件夹中的内容存在于B文件夹中?
如:A文件夹中有文件,C,D,E,F
B文件夹中也有文件C,D
那如何判断B文件夹中有A文件夹中的内容
然后再拿B文件夹中的文件和A文件夹中的文件进行对比,用修改时间来对比,如果修改时间之至,则打印same,否则 打印different
作者: wloliver 时间: 2019-7-30 18:21
需要循环判断
A文件夹中还有文件夹G,文件夹G中有文件J
B文件夹中也有文件夹G,文件夹G中有文件J
作者: zaqmlp 时间: 2019-7-30 21:45
- @echo off
- mode con lines=3000
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- set "folder1=D:\xxx\A"
- set "folder2=D:\xxx\B"
- powershell -NoProfile -ExecutionPolicy bypass ^
- $dic=New-Object 'System.Collections.Generic.Dictionary[string,Object]';^
- $files1=@(dir -liter '%folder1%' -r^|?{$_ -is [System.IO.FileInfo]});^
- for($i=0;$i -lt $files1.count;$i++){^
- $filename=$files1[$i].Name.toLower();^
- if(-not $dic.ContainsKey($filename)){^
- [System.Collections.ArrayList]$a=@();^
- $dic.add($filename,$a);^
- };^
- [void]$dic[$filename].add($files1[$i]);^
- };^
- $files2=@(dir -liter '%folder2%' -r^|?{$_ -is [System.IO.FileInfo]});^
- for($i=0;$i -lt $files2.count;$i++){^
- $filename=$files2[$i].Name.toLower();^
- if($dic.ContainsKey($filename)){^
- for($j=0;$j -lt $dic[$filename].count;$j++){^
- $s='same';$c='green';^
- if($files2[$i].LastWriteTime -ne $dic[$filename][$j].LastWriteTime){$s='different';$c='red';};^
- write-host $s -ForegroundColor $c;^
- write-host ('['+$files2[$i].LastWriteTime.toString('yyyy-MM-dd HH:mm:ss.fff')+']'+$files2[$i].FullName);^
- write-host ('['+$dic[$filename][$j].LastWriteTime.toString('yyyy-MM-dd HH:mm:ss.fff')+']'+$dic[$filename][$j].FullName);^
- write-host '';^
- };^
- };^
- };
- echo;%info%
- pause
复制代码
作者: wloliver 时间: 2019-8-1 18:36
本帖最后由 wloliver 于 2019-8-1 18:46 编辑
回复 3# zaqmlp
谢谢大神 虽然看不懂这么复杂的
真是太厉害了大神
作者: wloliver 时间: 2019-8-1 18:47
zaqmlp 发表于 2019-7-30 21:45
大神 ,还想追加点东西!
比如我所有文件夹中的文件都判断是一样的了,那么就去执行程度A,如果有一个文件判断不一样,则执行程度B
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |