Board logo

标题: [文本处理] [已解决]这个bat代码提取创建日期的文件怎么改? [打印本页]

作者: 7016427    时间: 2015-5-25 18:40     标题: [已解决]这个bat代码提取创建日期的文件怎么改?

  1. @echo off&setlocal EnableDelayedExpansion
  2. set /p d="请提取文件日期(输入格式:20150501):"
  3. for /f %%i in ("%date%") do (
  4.         set cur_day=%%i
  5. )
  6. cd /d d:\srrb\
  7. for /f "tokens=1-3*" %%a in ('dir /a:%-d% /t *.xls^|findstr /b [0-9]') do (
  8.         if "!cur_day!"=="%%a"  echo f | xcopy "%%d" /y e:\rq\%d%\
  9. )
  10. echo 提取完毕!  
  11. pause
复制代码
谢谢各位老师指导!
作者: 7016427    时间: 2015-5-25 20:47     标题: 【期盼高手解决】请各位老师看看,这个bat代码提取创建日期的文件怎么改?

回复 1# 7016427
for /f %%i in ("%d%") do (
这样还是不行!
作者: yangfengoo    时间: 2015-5-25 21:06

把echo,%date%结果发出来,
作者: 7016427    时间: 2015-5-25 21:08

回复 3# yangfengoo
你好!测试结果:2015-05-25 星期一
作者: yangfengoo    时间: 2015-5-25 21:13

本帖最后由 yangfengoo 于 2015-5-25 21:17 编辑
  1. @echo off&setlocal EnableDelayedExpansion
  2. set /p d="请提取文件日期(输入格式:20150501):"
  3. cd /d d:\srrb\
  4. for /f "tokens=1-3*" %%a in ('dir /a:%-d% /t *.xls^|findstr /b [0-9]') do (
  5.         if "%%a"=="!d:~,4!-!d:~4,2!-!d:~6,2!" xcopy /f "%%d" /y e:\rq\%d%\
  6. )
  7. echo 提取完毕!  
  8. pause
复制代码

作者: 7016427    时间: 2015-5-25 21:18     标题: [未解决]请各位老师看看,这个bat代码提取创建日期的文件怎么改?

[未解决]回复 5# yangfengoo
测试未找到文件,时间文件存在。
作者: 7016427    时间: 2015-5-25 21:19

回复 6# 7016427
测试找到文件,实际文件存在!
作者: yangfengoo    时间: 2015-5-25 21:21

回复 7# 7016427


    已修改。我用jpg做的测试。如果错误给出错误提示
作者: 7016427    时间: 2015-5-25 21:27

回复 8# yangfengoo
测试报错:找不到文件
作者: yangfengoo    时间: 2015-5-25 21:29

6楼已修改啊
作者: 7016427    时间: 2015-5-25 21:36

回复 10# yangfengoo
不好意思,我忘记改成xls了。请教老师win7系统这个行不?
作者: 7016427    时间: 2015-5-25 21:38

回复 10# yangfengoo
最后输入日期格式2015-5-23怎么改?
作者: yangfengoo    时间: 2015-5-25 21:38

win7 32测试没问题
作者: 7016427    时间: 2015-5-25 21:44

回复 13# yangfengoo
我家是xp系统。
作者: 7016427    时间: 2015-5-25 21:46

回复 13# yangfengoo
我把日期输成:“2015-5-24”就不行,最好这种格式如何改?我是拷贝在win7机上执行的。
作者: gawk    时间: 2015-5-26 09:29

回复 15# 7016427


这个跟Win7/XP关系不大。
即使是两个都是Win7,即使是两个都是XP,日期格式也可能不同。

你需要先确认两个系统执行以下命令得到的输出格式分别怎样的:
echo %date%
dir /t *.xls
作者: 7016427    时间: 2015-5-26 20:59

回复 16# gawk
我在win7测试显示:2015/05/26  周二
作者: 7016427    时间: 2015-5-26 21:26     标题: 【期待高手解决】这个bat代码提取创建日期的文件怎么改?

回复 16# gawk
@echo off&setlocal EnableDelayedExpansion
set /p d="请提取文件日期(输入格式:2015/05/01):"
cd /d d:\srrb\
for /f "tokens=1-3*" %%a in ('dir /a:%-d% /t *.xls^|findstr /b [0-9]') do (
        if "%%a"=="!d:~,4!-!d:~5,2!-!d:~8,2!" xcopy /f "%%d" /y e:\rq\%d%\
)
echo 提取完毕!  
pause
以上在win7系统测试成功!但是,月份、号数怎样补零(补为两位数,如:输入日期为:2015/5/7,自动月、日补为两位数(2015/05/07
作者: 7016427    时间: 2015-5-26 21:29

回复 18# 7016427
更正:
if "%%a"=="!d:~,4!/!d:~5,2!/!d:~8,2!" xcopy /f "%%d" /y e:\rq\%d%\
作者: gawk    时间: 2015-5-27 09:01

回复 18# 7016427
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set /p d="请提取文件日期(输入格式:2015/05/01):"
  4. REM 补零
  5. for /f "tokens=1-3 delims=/" %%i in ("%d%") do (
  6.     set yyyy=%%i
  7.     set mm=10%%j
  8.     set dd=10%%k
  9. )
  10. set d=!yyyy!/!mm:~-2!/!dd:~-2!
  11. cd /d d:\srrb\
  12. for /f "tokens=1-3*" %%a in ('dir /a-d /t *.xls ^| findstr /b [0-9]') do (
  13.     if "%%a"=="!d:~,4!/!d:~5,2!/!d:~8,2!" (
  14.         xcopy /f /y "%%d" "e:\rq\%d%\"
  15.     )
  16. )
  17. echo 提取完毕!  
  18. pause
复制代码

作者: 7016427    时间: 2015-5-27 13:12

[测试失败]回复 20# gawk
测试输入日期:2015/5/27时,就不行。输入:2015/05/27就行
作者: gawk    时间: 2015-5-27 14:45

回复 21# 7016427


在第12行加一句:
echo !d!
结果发出来看看
作者: yangfengoo    时间: 2015-5-27 15:10

回复 21# 7016427


明明已经给了标准格式(2015/05/01),为何总是逼自己乱输入呢
作者: 7016427    时间: 2015-5-27 20:17

回复 1# 7016427




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