如果今天修改/创建单个文件(example.avi),如果答案为是,则必须检入外部目录,然后启动另一个批处理或退出。
我发现了几个帖子,但我无法自己制作这个批处理文件。
我希望有人可以帮助我。 提前谢谢。
答案 0 :(得分:1)
我发现了这个,但在我的Win XP上无效。
@echo off
for %%F in (C:\TEST\myfile.avi) do (for /F %%D in ("%%~tF") do (set mdate=%%D))
for /F "tokens=2" %%D in ('date/t') do set cdate=%%D
if "%cdate%"=="%mdate%" start myprogram.bat
答案 1 :(得分:1)
如果你在正确的位置开始换行,你找到的脚本对我来说似乎是有效的。 您可以在if语句之前添加echo语句,以查看cdate和mdate是否具有正确的值。 并检查目录中是否存在myprogram.bat。 这是一个修改版本,显示了这一点。你可以试试这个,如果不起作用就发布输出?
@echo off
for %%F in (C:\TEST\myfile.avi) do (for /F %%D in ("%%~tF") do (set mdate=%%D))
for /F "tokens=2" %%D in ('date/t') do set cdate=%%D
echo cdate="%cdate%" mdate="%mdate%" current dir=%cd%
if "%cdate%"=="%mdate%" going to start myprogram.bat
if "%cdate%"=="%mdate%" start myprogram.bat
pause
修改强> 这是一个独立于区域设置的版本。它基于this解决方案。
@echo off
reg copy "HKCU\Control Panel\International" "HKCU\Control Panel\International-Temp" /f > NUL
reg add "HKCU\Control Panel\International" /v sShortDate /d "yyMMdd" /f > NUL
for %%F in (C:\TEST\myfile.avi) do (for /F %%D in ("%%~tF") do (set mdate=%%D))
for /F "tokens=1" %%D in ("%date%") do set cdate=%%D
echo cdate="%cdate%" mdate="%mdate%" current dir=%cd% date="%date%"
reg copy "HKCU\Control Panel\International-Temp" "HKCU\Control Panel\International" /f > NUL
if "%cdate%"=="%mdate%" start myprogram.bat
它首先在注册表中备份短期格式。然后用yyMMdd替换它。现在它查找文件的修改日期和当前日期。在比较日期之前,它恢复了短期格式。
答案 2 :(得分:0)
DIR %1 | FIND /I "%1" > ~ISMODIF.TMP
ECHO.>> ~ISMODIF.TMP
TYPE ~ISMODIF.TMP | TIME | FIND /I "%1" > ~ISMODIF.BAT
ECHO SET CHKDATE=%%4> ENTER.BAT
CALL ~ISMODIF.BAT
DIR ~ISMODIF.BAT | FIND /I "~ISMODIF.BAT" > ~ISMODIF.TMP
ECHO.>> ~ISMODIF.TMP
TYPE ~ISMODIF.TMP | TIME | FIND /I "~ISMODIF.BAT" > ~ISMODIF.BAT
ECHO SET NOWDATE=%%4> ENTER.BAT
CALL ~ISMODIF.BAT
IF "%NOWDATE%"=="%CHKDATE%" ECHO %1 was created or modified today