中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]怎样找出某个文件夹下最后修改的那个文件,并用start
作者:
标题: [求助]怎样找出某个文件夹下最后修改的那个文件,并用start 上一主题 | 下一主题
unique009
初级用户





积分 28
发帖 8
注册 2005-11-5
状态 离线
『楼 主』:  [求助]怎样找出某个文件夹下最后修改的那个文件,并用start

[求助]怎样找出某个文件夹下最后修改的那个文件,然后用start打开它?
我想用批处理找出一个文件夹下最后修改的那个文件(就是在文件夹中以文件修改时间从小到大排序,排在最后面的那个文件),然后就用start命令以此文件的缺省打开方式来打开它?
另外,如果想以文件创建时间来排序的话,又该怎样写?
该怎样写这个批处理,请帮帮忙

2005-11-12 09:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
voiL
中级用户





积分 384
发帖 189
注册 2005-10-19
状态 离线
『第 2 楼』:  

水平有限,可能不是很完美.但经测试是可用的.

    1.把下面的代码另存为bat文件放在你要比较的目录下并执行.

    2.批处理只对非文件夹类的文件进行比较.

    3.放入本批处理之后不要再新建文件(文件夹除外),否则须把"set /a line-=2"改成"set /a line-=1"

  Quote:
@echo off
for /f "tokens=1,* delims=:" %%a in ('dir /a-d /OD ^|findstr/r /n "\<个文件\>"') do (set line=%%a)
set /a line-=2
for /f "tokens=1,2,3 delims=:" %%i in ('dir /a-d /OD ^|findstr/r /n "."') do (
set /A n+=1
if %%i == %line% set LsatFile=%%k
)
echo. %LsatFile%>%temp%.\$c.txt
for /f "tokens=2* delims= " %%x in (%temp%.\$c.txt) do echo start %%y>%temp%.\$z.bat
echo exit>>%temp%.\$z.bat
start %temp%.\$z.bat
del /Q %temp%.\$c.txt
del /Q %temp%.\$z.bat



2005-11-12 13:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
voiL
中级用户





积分 384
发帖 189
注册 2005-10-19
状态 离线
『第 3 楼』:  

以上代码在WinXP CMD(CMD VER 5.1.2600)下测试通过.

2005-11-12 14:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: