在批处理文件中添加文件名的时间

时间:2012-05-13 22:28:46

标签: batch-file

您好我有一个批处理文件,可以运行几个程序来截取我的一些网页。

看起来像这样

@echo off
setLocal EnableDelayedExpansion
for /f "tokens=2-4 delims=/ " %%a in ('echo %date%')
do (
set DDMMYYYY=%%a%%b%%c
)

webscreencapture.exe http://123.com c:/users/d/desktop/dealscreens/folder1/!DDMMYYYY!.jpg
webscreencapture.exe http://1234.com c:/users/d/desktop/folder2/!DDMMYYYY!.jpg

这对于每天捕获一次屏幕效果很好,但是现在我想要每天捕获两次屏幕,所以我需要在文件名中添加一个时间或类似的内容,所以我得到两个不同的截图。

3 个答案:

答案 0 :(得分:0)

试试这个 - 我没有测试过,但它应该很接近。

@echo off 
setLocal EnableDelayedExpansion 
for /f "tokens=2-4 delims=/ " %%a in ('echo %date%') 
do (
  set DDMMYYYY=%%a%%b%%c
)

for /f "tokens=1-5 delims=:" %%d in ("%time%") 
do (
  set HHMM=%%d%%e 
)

然后:

webscreencapture.exe 
  http://123.com 
  c:/users/d/desktop/dealscreens/folder1/!DDMMYYYY!!HHMM!.jpg 

[注意:上面应该是单行,因为你已经拥有它。我把它放在多行上以便于阅读。]

答案 1 :(得分:0)

两个选项:

添加时间

您可能应该为文件名添加时间。小时应该足够 - 除非您使用am / pm并且您的脚本执行例如凌晨1点和下午1点。

不幸的是,日期和时间格式取决于区域设置。如果你知道区域设置的日期和时间,这将更容易和更短。

Rob van der Woude在他的网站上完整地写了这个主题: http://www.robvanderwoude.com/datetimentbasics.phphttp://www.robvanderwoude.com/datetime.php,使用不同的方法和脚本。

添加一个计数器

为文件名添加后缀可能更容易,并且每次都会增加。

例如:

@echo off
setLocal EnableDelayedExpansion
for /f "tokens=2-4 delims=/ " %%a in ('echo %date%')
do (
set DDMMYYYY=%%a%%b%%c
)

SET /a c=1
:checkfilename
IF EXISTS c:/users/d/desktop/dealscreens/folder1/!DDMMYYYY!-!c!.jpg (
    SET /a c=!c!+1
    GOTO :checkfilename
)

webscreencapture.exe http://123.com c:/users/d/desktop/dealscreens/folder1/!DDMMYYYY!-!c!.jpg
webscreencapture.exe http://1234.com c:/users/d/desktop/folder2/!DDMMYYYY!-!c!.jpg

答案 2 :(得分:0)

将标记设置为1-4而不是2-4,然后它将显示DDMMYYY中的输出