批处理文件从今天查找文件并运行另一个.bat否则运行vbs并退出

时间:2013-10-17 02:53:39

标签: date batch-file if-statement

我有一个批处理文件我想在文件夹中搜索今天更新的任何xlsm文件。 如果它从今天找到xlsm文件,则它会运行另一个bat文件。如果没有更新的文件,它应该运行.vbs文件(发送电子邮件),然后退出。

目前我有以下内容:

@echo off
set var=%date:~-10%
dir "*.xlsm"|find "%var%">nul&&CALL Update.bat||EXIT

我想我可能需要包含某种IF / ELSE而不是当前的方法,但我的技能缺乏..

修改 根据@Monacraft的回答,我已经使用的实际解决方案是:

@echo off
forfiles /p C:\ /m *.xlsm /d 0 /c "cmd /c call Update.bat"
if ERRORLEVEL 1 start FailEmail.vbs

3 个答案:

答案 0 :(得分:1)

如果使用Windows 7,您可以执行forfiles

@echo off
set found=FALSE

forfiles /p "C:\...[path to folder]" /m *.xlsm /d +1 /c "cmd /c Echo Updating...&CALL Update.bat&set found=TRUE"

if /i %found%==False (
start email.vbs
) else (
Exit
)

这应该可以正常工作

莫纳

答案 1 :(得分:1)

这对我有用:

@echo off
forfiles /p C:\ /m *.xlsm /d 0 /c "cmd /c call Update.bat"
if ERRORLEVEL 1 start FailEmail.vbs

答案 2 :(得分:0)

我认为你的代码应该可行 - 这里有一些小改动。

它只会echo屏幕上的命令,供您测试。

要考虑的一点是,DIR命令还将匹配短名称中的*.xls个文件。

@echo off
set "var=%date:~-10%"
dir "*.xlsm"|find "%var%">nul && (echo CALL Update.bat) || (echo start failemail.vbs)
pause