标题: [文本处理] [已解决]这个bat代码提取创建日期的文件怎么改? [打印本页]
作者: 7016427 时间: 2015-5-25 18:40 标题: [已解决]这个bat代码提取创建日期的文件怎么改?
- @echo off&setlocal EnableDelayedExpansion
- set /p d="请提取文件日期(输入格式:20150501):"
- for /f %%i in ("%date%") do (
- set cur_day=%%i
- )
-
- cd /d d:\srrb\
- for /f "tokens=1-3*" %%a in ('dir /a:%-d% /t *.xls^|findstr /b [0-9]') do (
- if "!cur_day!"=="%%a" echo f | xcopy "%%d" /y e:\rq\%d%\
- )
- echo 提取完毕!
- 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 编辑
- @echo off&setlocal EnableDelayedExpansion
- set /p d="请提取文件日期(输入格式:20150501):"
- 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:~4,2!-!d:~6,2!" xcopy /f "%%d" /y e:\rq\%d%\
- )
- echo 提取完毕!
- 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 - @echo off
- setlocal EnableDelayedExpansion
- set /p d="请提取文件日期(输入格式:2015/05/01):"
-
- REM 补零
- for /f "tokens=1-3 delims=/" %%i in ("%d%") do (
- set yyyy=%%i
- set mm=10%%j
- set dd=10%%k
- )
- set d=!yyyy!/!mm:~-2!/!dd:~-2!
-
- 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 /y "%%d" "e:\rq\%d%\"
- )
- )
- echo 提取完毕!
- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |