Board logo

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

作者: 7016427    时间: 2016-8-19 13:44     标题: 批处理如何实现在指定日期复制指定文件到其他目录

本帖最后由 7016427 于 2016-8-19 19:59 编辑

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

主要是我不知道:每月10号、20号的写法
作者: 7016427    时间: 2016-8-19 19:29

回复 1# 7016427


  请问老师,类似提问标题是什么?
作者: bbaa    时间: 2016-8-19 22:48

  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. )
复制代码

作者: 7016427    时间: 2016-8-20 07:10     标题: RE: [已解决]批处理如何实现在指定日期复制指定文件到其他目录

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

[已解决]回复 3# bbaa
作者: yu2n    时间: 2016-8-20 08:30

本帖最后由 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
复制代码

作者: pcl_test    时间: 2016-8-20 10:32

wmic path win32_utctime get Day /value
作者: WHY    时间: 2016-8-20 11:23

可以考虑用任务计划,举例:
  1. schtasks /create /tn cp /tr "cmd /c copy D:\a.txt \"E:\\"" /d 10 /sc monthly
复制代码

作者: 7016427    时间: 2016-8-20 19:29     标题: RE: 【已解决】批处理如何实现在指定日期复制指定文件到其他目录

回复 7# WHY
作者: GNU    时间: 2016-8-22 17:05

回复 5# yu2n
  1. wmic path win32_operatingsystem get LocalDateTime /value
复制代码

作者: GNU    时间: 2016-8-22 17:06

回复 6# pcl_test


    UTC时间容易出问题吧,凌晨执行命令会取到错误的日期。
作者: pcl_test    时间: 2016-8-22 18:39

回复 10# GNU

嗯,记错了,应该是
wmic path win32_localtime get Day /value
作者: xxpinqz    时间: 2016-8-22 19:23

回复 7# WHY

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

控制面板内是可以设置多个日期的,命令行貌似搞不定。
作者: WHY    时间: 2016-8-23 10:56

回复 12# xxpinqz


    是的,不知道是BUG还是微软有意为之,多个日期的话只对周计划有效,对月计划无效。
... /d mon,tue,wed /sc weekly
作者: GNU    时间: 2016-8-23 11:33

回复 13# WHY


    猜测有可能是不想在代码中判断每个月是否有29、30、31号
作者: xxpinqz    时间: 2016-8-23 23:52

回复 13# WHY





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2