Batch file 在批处理文件中为文件名添加时间

Batch file 在批处理文件中为文件名添加时间,batch-file,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!.jp

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

看起来像这样

@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

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

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

@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 
[注意:上面应该是一行,因为您已经有了它。我将它放在多行上以便于阅读。]

两个选项:

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

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

Rob van der Woude在他的网站上有一篇关于这个主题的完整文章: 并且,使用不同的方法和脚本

添加计数器 为文件名添加后缀并每次递增可能更容易

例如:

@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

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

感谢您的帮助。批处理文件将不会使用新代码执行。我相信您需要的基本信息在文件中。我相信,你需要仔细研究细节才能让它发挥作用。