批处理文件 如果修改日期 = 昨天日期(运行命令)



好的,我昨天正在使用Rob Van der Woude.bat代码以及我在其他人的帮助下整理的一些代码。

有一个文件,我首先想看看它是否存在昨天的日期,如果为真,那么我会做一些其他的事情。 我遇到的问题是将文件日期与"昨天"的日期进行比较。 当我将它们回显到屏幕上时,它们看起来完全相同,但我的批处理文件显示它们不是。 代码的第一部分是从昨天开始的.bat以显示我插入代码的位置。 任何指导都非常感谢。

Display the results
ECHO Format:     YYYYMMDD  (%LocalFormat%)
ECHO.==================================
CALL ECHO Yesterday:  %SortYest%  %yLocal%
ECHO Today:      %SortDate%  %Today%
:: Check if file gams1bu from yesterday exists
SET filename="B:databackupgams1bu" 
IF NOT EXIST %filename% GOTO log 
FOR %%f IN (%filename%) DO SET filedatetime=%%~tf 
::This displays the results of the two variables
CALL ECHO %yLocal%
CALL ECHO %filedatetime:~0,-10%

IF %filedatetime:~0,-10% == %yLocal% goto same
goto notsame
:same
echo Dates the same, do some code here
goto next
:notsame
echo Dates NOT the same, do some code here  

即使运行此命令时日期看起来相同,批处理文件也会转到:notsame????

SET filename="B:databackupgams1bu" 
IF NOT EXIST %filename% GOTO log 
FOR %%f IN (%filename%) DO SET filedatetime=%%~tf 

似乎没有在我的提示符下设置文件日期时间 (cmd.exe)

这将为您提供 YYYYMMDD 格式的当前日期20121128:

for /F "tokens=2-4 delims=/ " %i in ('date /t') do SET datestamp=%k%i%j
SET datestamp=20121128

C:>echo %datestamp%
20121128

(原始命令来自:)

http://www.sprint.net.au/~terbut/usefulbox/msdoscmds.htm

你好

如果您需要获取 YYYYMMDD 格式的文件日期,您可以这样做:

假设文件名为 FILE_YOU_NEED.txt

for %a in (FILE_YOU_NEED.txt) do set FileDate=%~ta
for /F "tokens=1-3 delims=/ " %i in ('echo %FileDate%') do SET datestamp=%k%i%j

如果您的 filedatetime 变量同时具有日期和时间,您可以尝试比较只有日期但没有时间的变量:

set FILEDATETIME=12/02/2012 13:45
echo %FILEDATETIME%
12/02/2012 13:45
set FILEDATEONLY=%FILEDATETIME:~0,10%
echo %FILEDATEONLY%
12/02/2012

相关内容

  • 没有找到相关文章

最新更新