标题: [文本处理] 批处理如何实现在指定日期复制指定文件到其他目录 [打印本页]
作者: 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
- @echo off
- for /f "tokens=1" %%i in ("%date%") do (
- for /f "tokens=3 delims=/" %%j in ("%%i") do (
- if %%j==20 (copy /y c:\hjkd.xls E:\hjkd.xls)
- if %%j==10 (copy /y c:\hjkd.xls E:\hjkd.xls)
- )
- )
复制代码
作者: 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 编辑
我的日期是這樣的:- C:\Users\yu2n>echo %date%
- 16-08-20 週六
复制代码
%date% 有很多樣式,BAT 不能很好的處理,所以藉助 VBS 拓展功能。- @echo off
-
- rem 獲取日期賦值給 %day% 變數(忽略日期分隔符號號 - / . ,以及地區設定的影響 )
- echo WScript.Echo day(now)>"%tmp%\$160820.vbs"
- for /f "delims=" %%a in ('cscript.exe //Nologo "%tmp%\$160820.vbs"') do set "day=%%a"
-
- rem 按日期執行
- if %day%==10 copy /y c:\hjkd.xls E:\
- if %day%==20 copy /y c:\hjkd.xls E:\
- pause
复制代码
作者: pcl_test 时间: 2016-8-20 10:32
wmic path win32_utctime get Day /value
作者: WHY 时间: 2016-8-20 11:23
可以考虑用任务计划,举例:- 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 - 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |