1

嗨,我有一个批处理文件,它运行几个程序来截取我的一些网页。

看起来像这样

@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

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

4

3 回答 3

0

两种选择:

添加时间

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

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

Rob van der Woude 在他的网站上有一个关于这个主题的完整文章: http ://www.robvanderwoude.com/datetimentbasics.php和http://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
于 2012-05-14T09:42:39.790 回答
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 

[注意:上面应该是一行,因为你已经有了它。我把它放在多行以使其更易于阅读。]

于 2012-05-13T22:34:59.333 回答
0

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

于 2013-10-10T11:18:58.450 回答