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

[文本处理] 批处理如何实现在指定日期复制指定文件到其他目录

[复制链接]
发表于 2016-8-19 13:44:57 | 显示全部楼层 |阅读模式
本帖最后由 7016427 于 2016-8-19 19:59 编辑

我每月10号、20号复制c:\hjkd.xls ,复制到e:\
请问老师,这个批处理文件怎样写?

主要是我不知道:每月10号、20号的写法

评分

参与人数 1PB -30 收起 理由
pcl_test -30 发帖前先使用论坛搜索

查看全部评分

 楼主| 发表于 2016-8-19 19:29:43 | 显示全部楼层
回复 1# 7016427


  请问老师,类似提问标题是什么?
发表于 2016-8-19 22:48:11 | 显示全部楼层

  1. @echo off
  2. for /f "tokens=1" %%i in ("%date%") do (
  3.        for /f "tokens=3 delims=/" %%j in ("%%i") do (
  4.        if %%j==20 (copy /y c:\hjkd.xls E:\hjkd.xls)
  5.        if %%j==10 (copy /y c:\hjkd.xls E:\hjkd.xls)
  6.        )
  7. )
复制代码
 楼主| 发表于 2016-8-20 07:10:22 | 显示全部楼层

RE: [已解决]批处理如何实现在指定日期复制指定文件到其他目录

本帖最后由 7016427 于 2016-8-20 07:13 编辑

[已解决]回复 3# bbaa

评分

参与人数 1PB -30 收起 理由
pcl_test -30 勿重复添加标题

查看全部评分

发表于 2016-8-20 08:30:34 | 显示全部楼层
本帖最后由 yu2n 于 2016-8-20 08:34 编辑

我的日期是這樣的:

  1. C:\Users\yu2n>echo %date%
  2. 16-08-20 週六
复制代码
%date% 有很多樣式,BAT 不能很好的處理,所以藉助 VBS 拓展功能。

  1. @echo off

  2. rem 獲取日期賦值給 %day% 變數(忽略日期分隔符號號 - / . ,以及地區設定的影響 )
  3. echo WScript.Echo day(now)>"%tmp%\$160820.vbs"
  4. for /f "delims=" %%a in ('cscript.exe //Nologo "%tmp%\$160820.vbs"') do set "day=%%a"

  5. rem 按日期執行
  6. if %day%==10  copy /y c:\hjkd.xls E:\
  7. if %day%==20  copy /y c:\hjkd.xls E:\
  8. pause
复制代码
发表于 2016-8-20 10:32:38 | 显示全部楼层
wmic path win32_utctime get Day /value

评分

参与人数 1技术 +1 收起 理由
yu2n + 1 感谢分享

查看全部评分

发表于 2016-8-20 11:23:27 | 显示全部楼层
可以考虑用任务计划,举例:
  1. schtasks /create /tn cp /tr "cmd /c copy D:\a.txt "E:\"" /d 10 /sc monthly
复制代码
 楼主| 发表于 2016-8-20 19:29:39 | 显示全部楼层

RE: 【已解决】批处理如何实现在指定日期复制指定文件到其他目录

回复 7# WHY

评分

参与人数 1PB -30 收起 理由
pcl_test -30 勿重复添加标题

查看全部评分

发表于 2016-8-22 17:05:48 | 显示全部楼层
回复 5# yu2n
  1. wmic path win32_operatingsystem get LocalDateTime /value
复制代码

评分

参与人数 1技术 +1 收起 理由
yu2n + 1 感谢分享

查看全部评分

发表于 2016-8-22 17:06:42 | 显示全部楼层
回复 6# pcl_test


    UTC时间容易出问题吧,凌晨执行命令会取到错误的日期。
发表于 2016-8-22 18:39:18 | 显示全部楼层
回复 10# GNU

嗯,记错了,应该是
wmic path win32_localtime get Day /value
发表于 2016-8-22 19:23:26 | 显示全部楼层
回复 7# WHY

/d 参数有没什么办法指定两个日期

控制面板内是可以设置多个日期的,命令行貌似搞不定。
发表于 2016-8-23 10:56:33 | 显示全部楼层
回复 12# xxpinqz


    是的,不知道是BUG还是微软有意为之,多个日期的话只对周计划有效,对月计划无效。
... /d mon,tue,wed /sc weekly
发表于 2016-8-23 11:33:10 | 显示全部楼层
回复 13# WHY


    猜测有可能是不想在代码中判断每个月是否有29、30、31号
发表于 2016-8-23 23:52:10 | 显示全部楼层
回复 13# WHY
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 10:17 , Processed in 0.025735 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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