找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28910|回复: 7

[日期时间] [已解决]批处理如何根据时间生成日期+白天夜晚的文件夹?

[复制链接]
发表于 2015-6-18 13:00:59 | 显示全部楼层 |阅读模式
本帖最后由 okobe0 于 2015-7-10 19:22 编辑

怎么才能以每天的8点和18点为界,生成以白天和夜晚为名的两个文件夹?
比如今天是6月18日,根据需求要生成两个文件夹,6月18日8点到18点的生成一个名为“6月18日白天”;6月18日的18点到6月19日的八点,生成一个名为“6月18日晚上”的文件夹。
比如现在是6月18日的22点,或者是6月19日的3点,这时候执行批处理,就能生成命名为“6月18日晚上”的文件夹。
我记得以前听一位老兄说过,因为要跨越0点,生成文件夹的代码一次不好实现,那也可以以18-0点,0-8点分两次实现。
现在还一个问题,如果时间上存在重合,比如8点这个分界点,怎么处理呢?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-6-18 13:10:35 | 显示全部楼层
如果时间上存在重合,比如8点这个分界点,怎么处理呢?

大于等于8认为是当天
小于8认为是昨天
发表于 2015-6-18 14:39:41 | 显示全部楼层
bat+vbs,直接保存为批处理文件即可
  1. '&cls&@echo off&for /f %%a in ('cscript -nologo -e:vbscript %~fs0') do md %%a&pause&exit /b
  2. h=hour(now)
  3. d=date()
  4. if h>=0 and h<8 then
  5. d=date()-1
  6. z="晚上"
  7. elseif h>=8 and h<18 then
  8. z="白天"
  9. else
  10. z="晚上"
  11. end if
  12. wscript.echo month(d)&"月"&day(d)&"日"&z
复制代码

评分

参与人数 1技术 +1 收起 理由
okobe0 + 1 很不错,完美实现

查看全部评分

 楼主| 发表于 2015-6-18 21:19:18 | 显示全部楼层
回复 3# pcl_test


    哥,你牛啊,完美实现我的想法。不过我新手,有些地方实现不了。比如,我想把文件拷贝到这个目录下,用你的代码可以实现生成文件夹,然后我就用代码把文件拷贝到这个目录,第一次拷贝没问题,第二次因为有之前已经生成了文件夹,代码会提示已经有同名文件夹。我想在复制之前加一条if检测代码,如果有这个文件夹直接复制,如果没有就创建,可是我不懂VB,调试了好久,if语句都加不上,显示语法错误,大哥帮忙解决一下好吗?
发表于 2015-6-18 21:47:39 | 显示全部楼层
本帖最后由 pcl_test 于 2015-6-21 19:40 编辑

回复 4# okobe0
改为
  1. '&cls&@echo off
  2. '&cls&for /f %%a in ('cscript -nologo -e:vbscript %~fs0') do set "folder=%%a"&if not exist "E:\%%a" md "E:\%%a"
  3. '&cls&for /f "delims=" %%i in ('dir /ad /b I:\') do xcopy "I:\%%i" "E:\%folder%\%%i" /s
  4. '&cls&pause&exit /b
复制代码

评分

参与人数 1技术 +1 收起 理由
okobe0 + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-6-19 17:55:29 | 显示全部楼层
本帖最后由 okobe0 于 2015-6-19 17:56 编辑

回复 5# pcl_test

因为要复制根目录下的文件夹,任意名称的,下面这句话怎样加进你之前写的代码中去呢?
    for /f "delims=" %%i in ('"dir /ad /b I:"') do copy "I:\%%i" "E:\%%a\"

'&cls&@echo off
'&cls&for /f %%a in ('cscript -nologo -e:vbscript %~fs0') do (if not exist "E:\%%a\" md "E:\%%a\"&copy "I:\%%i" "E:\%%a\")
h=hour(now)
d=date()
if h>=0 and h<8 then
d=date()-1
z="晚上"
elseif h>=8 and h<18 then
z="白天"
else
z="晚上"
end if
wscript.echo month(d)&"月"&day(d)&"日"&z
发表于 2015-6-21 19:38:45 | 显示全部楼层
回复 6# okobe0

5楼已改

评分

参与人数 1技术 +1 收起 理由
okobe0 + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-7-10 19:22:33 | 显示全部楼层
回复 7# pcl_test


    谢谢你的回复,完美。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 22:43 , Processed in 0.011319 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表