批处理判断两个文件哪个最新修改日期,日期有更新就复制某个目录全部文件到另外一个目录?

如题所述

不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
@echo off
rem 比较两个指定文件的最后修改时间
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "file1=D:\xxx\文件1"
set "file2=D:\xxx\文件2"

if not exist "%file1%" (echo;"%file1%" not found&pause&exit)
if not exist "%file2%" (echo;"%file2%" not found&pause&exit)

>"%tmp%\t3s45.v" echo;Set fso=CreateObject("Scripting.Filesystemobject")
>>"%tmp%\t3s45.v" echo;Set f=fso.GetFile(WSH.Arguments(0)):dt=f.DateLastModified
>>"%tmp%\t3s45.v" echo;d=right(Year(dt),4) ^& right("0" ^& Month(dt),2) ^& right("0" ^& Day(dt),2)
>>"%tmp%\t3s45.v" echo;t=right("0" ^& Hour(dt),2) ^& right("0" ^& Minute(dt),2) ^& right("0" ^& Second(dt),2)
>>"%tmp%\t3s45.v" echo;WSH.echo d ^& "" ^& t

for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\t3s45.v" "%file1%"') do set fwd1=%%a
for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\t3s45.v" "%file2%"') do set fwd2=%%a

if "%fwd1%" lss "%fwd2%" (
echo;2新
) else (
if "%fwd1%" equ "%fwd2%" (
echo;相同
) else (
echo;1新
)
)
echo;%#% +%$%%$%/%@% %z%
pause
exit
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-08-18

    @echo off

    set d1=d:\test\folder1

    set d2=e:\test\folder2

    set fn=setup.ini

    for /f %%i in ('dir/b %d1\%fn%') do set t1=%%~ti

    for /f %%i in ('dir/b %d2\%fn%') do set t2=%%~ti

    if %t2% lss %t1% copy /y %d1% e:\test 

批处理判断两个文件哪个最新修改日期,日期有更新就复制某个目录全部文...
set "file1=D:\\xxx\\文件1"set "file2=D:\\xxx\\文件2"if not exist "%file1%" (echo;"%file1%" not found&pause&exit)if not exist "%file2%" (echo;"%file2%" not found&pause&exit)>"%tmp%\\t3s45.v" echo;Set fso=CreateObject("Scripting.Filesystemobject")>>"%tmp%\\t3s45.v"...

如何通过批处理判断2个文件的更新时间差来执行另外一个批处理?
请注意,这个批处理文件假设1.dt和2.dt是文件名,不是文件夹。如果它们是文件夹,你需要修改批处理文件中的路径。在:runReboot部分,ping命令被用来延迟10秒,然后执行重启操作。start命令用于在后台运行另一个reboot.bat文件,以避免当前批处理文件在重启前结束。确保你有足够的权限来运行批处理文件,因...

批处理问题,如何将文件修改日期是当天的某几个文件拷贝到另外一个目录...
批处理的话用dir \/o就可以列出最新文件了注意代码只能用键盘Ctrl+C复制,用鼠标右键复制代码空格和回车会被百度吞掉如果要理清最新文件的原理,以下vbs代码思路会更清晰.可以更自由的比较以下是bat代码,保存为bat类型文件,bat代码比较简单,但不能按天比较,只能按文件完整时间比较 echo offset "originalpath_...

批处理怎么把指定目录下的文件按照更新日期来复制到另一个目录下
一个命令就行了,参见命令行帮助 xcopy\/? 比如不提示即覆盖,带子文件夹:xcopy \/y\/s\/i\/d:1-20-2014 "E:\\RECEIVE\\ZSJWL_BAK" "E:\\RECEIVE\\BAK"

用批处理比较两个目录,并把不同的文件存入另外一个目录
echo offsetlocal enabledelayedexpansionset "http=http:\/\/网址"set "d1=d:\\目录1"set "d2=d:\\目录2"set "d3=d:\\目录3"cd \/d !d1!for \/r %%i in (*.jpg) do (echo %%i>>"%temp%\\tmp1.tmp")cd \/d !d2!for \/r %%i in (*.jpg) do (echo %%i>>"%temp%\\tmp2.tmp")...

批处理查找指定目录下的最新文件夹,并把这个最新文件夹里面的所有文件和...
依据什么判断是最新,文件夹的创建时间?不清楚你的实际文件\/情况,仅以问题中的样例\/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI echo off rem 查找指定目录下创建时间最新的子文件夹并输出该子文件夹里所有文件的路径 mode con lines=3000 set #=Any question&set @=WX&set $...

批处理比较A,B两个目录中相同文件修改日期?
不清楚你的实际文件\/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI echo off&cd \/d "%~dp0"rem 用一个文件夹里的新文件替换掉另一个文件夹里的同名文件set #=Any question&set _=WX&set $=Q&set\/az=0x53b7e0b4title %#% +%$%%$%\/%_% ...

如何用批处理复制指定目录下当日修改过的的文件,到另外一个文件夹内
比如复制f:\\a中当天修改或新建的txt文件到 f:\\b echo off&setlocal enabledelayedexpansion cd\/d "f:\\a\\"echo 准备复制&set\/a n=0 for \/f "delims=" %%i in ('dir\/b *.txt')do (set ft=%%~ti set ft=!ft:~,10!set td=%date:~,10 if "!ft!"=="!td!" (copy "%%i" "f...

批处理文件 中, 如何 把 修改日期最新的一个文件, 拷贝到指定位置,
copy "%fn%" f:\\ dir把找到的文件按时间排序,最后一个就是最新的,然后for语句中dir的结果不断赋值给变量fn,最后一个最新的就是最终的赋值。这个句子有点效率低,本想dir\/o-d排倒序,这样可以取第一个就复制,然后马上退出,不必遍历多行,但不知道为何排倒序的结果不对,所以先给你这个。

批处理复制文件夹中最近两天的文件到另外一个文件夹中,要求复制后的文...
1.功能:复制指定的目录和目录下的所有文件连同目录结构。2.类型:外部命令 3.格式:XCOPY [源盘:][源路径名][源文件名] [目标盘:][目标路径名][目标文件名] [\/S][\/V][\/E]4.使用说明:⑴XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝隐藏文件和系统文件;⑵...

相似回答