|
lokeymei
新手上路
积分 18
发帖 17
注册 2008-11-7
状态 离线
|
『楼 主』:
%~ti扩展问题,想得到得到文件的创建时间
小弟进来不久,今天遇到这个问题,求大哥大姐们给个链接或解决方案::
问题如下,ppp
Quote: | @echo off&setlocal enabledelayedexpansion
set /p dd=请问你要查看哪天之后的文件:
echo 请等待……
echo =======================================
echo 新增的文件有:
set drv=c d e f g h i j k
for %%a in (%drv%) do (
for /f "delims=" %%i in ('dir /s/b/a-d %%a:\ 2^>nul') do (
set "rq=%%~ti"
set "rq=!rq:~0,10!
set "rq=!rq:-=!"
if "!rq!" gtr "!dd!" (
echo %%i
)
)
)
pause |
|
本意是要取得新增文件,输入一个时间,然后获取在这个时间后的创建的文件,我要得到的是创建的时间,然而经过粗略的测试发现%~ti得到的是文件修改的时间,问题就出来了怎么得到文件的创建时间呢?
想了下 dir /tc 发现我办不到,特来求助
我是新人,看了“新人须知”,不知我这个提问方式和内容有无不妥,不妥之处还望大家指出
经初步修改发现自己的错误很多,请高人指点一二
Quote: | @echo off&setlocal enabledelayedexpansion
set /p dd=请问你要查看哪天之后的文件:
echo 请等待……
echo =======================================
echo 新增的文件有:
set drv=c d e f g h i j k
for %%a in (%drv%) do (
for /f "tokens=1,4 delims= " %%i in ('"dir /tc /a-d %%a:\" ^|findstr /v ^"字节 目录^" 2^>nul') do (
set "rq=%%i"
if not "!rq!"=="" if "!rq!" gtr "!dd!" (
echo %%j
)
)
)
pause |
|
还是不行…………
[ Last edited by lokeymei on 2008-12-1 at 12:58 ]
|
|
2008-11-30 18:01 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
2 楼』:
应该可以的,不过有点粗心哦。。。
Quote: | if not "!rq!"=="" if "!rq!" gtr "!d!" ( |
|
|
|
2008-12-1 02:04 |
|
|
lokeymei
新手上路
积分 18
发帖 17
注册 2008-11-7
状态 离线
|
『第
3 楼』:
re 1#
谢谢啊,确实粗心,但错误仍然存在,,555
我修改了下
|
|
2008-12-1 12:56 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
『第
4 楼』:
@echo off&setlocal enabledelayedexpansion
set /p dd=请问你要查看哪天之后的文件:
echo 请等待……
echo =======================================
echo 新增的文件有:
set drv=c d e f g h i j k
for %%a in (%drv%) do (
for /f "skip=4 tokens=1,4" %%i in ('dir/tc /a-d %%a:\ 2^>nul^|findstr /v "字节" 2^>nul') do (
if "%%i" gtr "%dd%" echo %%j
))
pause
|
我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件 |
|
2008-12-1 21:04 |
|
|
lokeymei
新手上路
积分 18
发帖 17
注册 2008-11-7
状态 离线
|
『第
5 楼』:
re 4#
谢谢这位大哥同情我啊,等了很久,都没人回复我,
不过大哥把我的本意改了,我要全盘搜索,dir /tc/a-d 是不够的,
哎,,,,我自己摸索了半天,加上我老师的的修改问题已经圆满解决,谢谢各位的关注,经过修改,代码如下
Quote: | @echo off&setlocal enabledelayedexpansion
set /p dd=请问你要查看哪天之后的文件(如20081129):
echo 请等待……
echo =========================================================================
echo 新增的文件有:
set drv=c d e f g h i j k
for %%a in (%drv%) do (
for /f "skip=2 tokens=1,4" %%a in ('dir /s/a-d/tc "%%a:\"^|findstr /v ^"目录^"^|findstr /v ^"字节^" 2^>nul 3^>nul') do (
set "riqi=%%a"
if "!riqi:~4,1!"=="-" (
set "riqi=!riqi:-=!"
if "!riqi!" GTR "%dd%" (
echo ---- %%a
echo. "%%~FSb"
)
)
)
)
pause |
|
问题已经解决
|
|
2008-12-1 23:08 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
6 楼』:
Re 5楼
建议尽快学会代码缩进。
这样的代码风格,再过几天,连你自己都看不懂是啥意思了。
|
|
|
2008-12-2 10:01 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
『第
7 楼』:
首先说明我没有改变你的意图,我只是改了1楼下面的代码,再者你4楼的代码错误比较多,如在2个for里面都设置了同1个变量%%a 这容易引起错误,而且你没有屏蔽dir命令的错误提示,最好该成下面的代码:
@echo off&setlocal enabledelayedexpansion
set /p dd=请问你要查看哪天之后的文件(如20081129):
echo 请等待……
echo =========================================================================
echo 新增的文件有:
set drv=c d e f g h i j k
for %%d in (%drv%) do (
for /f "tokens=1,4" %%a in ('dir /s/a-d/tc %%d:\ 2^>nul^|findstr /v "字节"') do (
set "riqi=%%a"
if "!riqi:~4,1!"=="-" (
set "riqi=!riqi:-=!"
if "!riqi!" GTR "%dd%" (
echo ---- %%a
echo. "%%~FSb"
)
)
)
)
pause 另外在排出字节的同时也排出了目录, 因此可以不用排出目录吧?
|
我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件 |
|
2008-12-2 11:13 |
|
|
lokeymei
新手上路
积分 18
发帖 17
注册 2008-11-7
状态 离线
|
『第
8 楼』:
re all
谢谢大家,,我会尽力学的,,,,,谢谢每一楼的的兄弟,,,
楼上的建议和观点经测试完全正确,,,呵呵,,
奥,,
忘了个事,,,版主说代码要简化,要格式化,但是我是新手,不知道怎么去简化,,麻烦大哥给个示范,谢谢了
[ Last edited by lokeymei on 2008-12-2 at 18:02 ]
|
|
2008-12-2 17:32 |
|