如果修改日期与当前日期相同,则它会将一个文件复制到一个位置

时间:2013-07-28 06:12:29

标签: batch-file

我正在编写一个批处理文件,其执行方式如下:

  1. 它将在一个位置检查文件的修改日期
  2. 它会将修改日期与当前日期进行比较。
  3. 如果两个日期相同,则会将文件复制到某个位置
  4. 如果修改日期不等于当前日期,则会回显该文件未更新。
  5. 这是我到目前为止所拥有的:

    @echo off
    
    set currentDate=%date:~-10%
    SET filename="C:\users\ani\desktop\IMP\RetailEmp.txt"
    
    
    FOR %%X IN (%filename%) DO SET filedatetime=%%~tX
    pause
    if %filedatetime:~0,10% == %currentDate% 
    pause
    (
    ROBOCOPY C:\Users\ANI\Desktop\IMP  C:\downloads\%date:~-4,4%%date:~-10,2%%date:~-7,2%,RetailEmp.txt
    
    pause
    
    )
    pause
    if not %filedatetime:~0,10% == %currentDate%
    (echo file not updated
    pause
    )
    Exit /b 0
    

    但批处理脚本无效。我的猜测是它必须绕过if语句。

1 个答案:

答案 0 :(得分:0)

起始(必须与if

位于同一行
if %filedatetime:~0,10% == %currentDate% 
pause
(
ROBOCOPY C:\Users\ANI\Desktop\IMP  C:\downloads\%date:~-4,4%%date:~-10,2%%date:~-7,2%,RetailEmp.txt
pause
)

应该是这样的:

if %filedatetime:~0,10% == %currentDate% (
  pause
  ROBOCOPY C:\Users\ANI\Desktop\IMP  C:\downloads\%date:~-4,4%%date:~-10,2%%date:~-7,2%,RetailEmp.txt
  pause
)