中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [再问]如何得到某文件夹下名字一部分会改变的文件名?
作者:
标题: [再问]如何得到某文件夹下名字一部分会改变的文件名? 上一主题 | 下一主题
pillow
初级用户





积分 196
发帖 82
注册 2005-9-26
状态 离线
『楼 主』:  [再问]如何得到某文件夹下名字一部分会改变的文件名?

我有一种情况
contact目录下会存放着一个 contact051107.xls的文件,是电话表
但它会不定期的更新,比如变成 contact051120.xls
我想用Excel打开这个文件
每次进入这个目录,得到这个文件名前位固定是“contact"的全名
并赋给一个变量,比如 openit
再"%programfiles%\Microsoft Office\Excel.exe" %openit%
如果不引用外部命令而只用命令行中的命令,我可以怎么样做到?

我的运行环境是2000或是XP
请各位指点一二,不胜感激!

[ Last edited by pillow on 2006-1-4 at 11:38 ]

2005-12-8 18:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 2 楼』:  

如果确实是只有一个XLS文件的话,一条命令就搞定:

for %a in (contact*.xls) do start %a

如果将此命令写进一个批处理文件,就作一点点改动:
@for %%a in (contact*.xls) do start %%a

[ Last edited by JonePeng on 2005-12-9 at 20:38 ]

   此帖被 +1 点积分    点击查看详情   




----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2005-12-9 20:36
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 3 楼』:  

Jone的方法很好啊,不用第三方工具,我也没有什么更好的办法。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2005-12-10 12:10
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
JonePeng
金牌会员

D◎$ Fαп


积分 4562
发帖 1883
注册 2004-1-19
来自 广东广州
状态 离线
『第 4 楼』:  

好久不见了,Climbing大哥!谢谢夸奖。



----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
  
2005-12-10 17:53
查看资料  发送邮件  发短消息 网志  OICQ (373343541)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 5 楼』:  

Re pillow:

      如果存在多个文件,需要使用 for /f,下面是命令行下设置变量的代码:

for /f "delims=" %f in ('dir contact*.xls /b /od') do set openit=%f

      当然,也可如 JonePeng 兄般直接打开相应文件,不过需要写入到批处理中:

for /f "delims=" %%f in ('dir contact*.xls /b /o-d') do start %%f & goto:EOF

以上代码,未经测试,请调试无误后,谨慎使用



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-12-11 22:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pillow
初级用户





积分 196
发帖 82
注册 2005-9-26
状态 离线
『第 6 楼』:  

哇!灵光!!
这之前对FOR几乎是一无所知,这个问题已经困扰我好几天了,太谢谢啦各位啦!
又学会个新知识点!

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





积分 196
发帖 82
注册 2005-9-26
状态 离线
『第 7 楼』:  

看来这个问题我没有彻底弄明白呢,最近在用的时候又发生了新的问题
goto:EOF 这个 EOF是什么意思呢?这个不懂…

[ Last edited by pillow on 2006-1-4 at 11:42 ]

2005-12-26 17:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pillow
初级用户





积分 196
发帖 82
注册 2005-9-26
状态 离线
『第 8 楼』:  

新問題,由於局域網內同一時間可能會有多人打開這個文件,而第二,三或N個人打開此XLS文件时,会提示文件已经被其它用户打开,是否作为只读查看或是稍后再打开。
所以我现在想将这个XLS文件直接拷到用户桌面上,再打开桌面上的这个文件,
现在我能通过JonePeng在二楼中提供的方法来COPY到桌面上,
所以问题是,我能不能在拷完这个文件的同时就直接得到这个文件的名字然后start it?
如果CMD不行,那么可以加上别的什么可以在2000和XP下执行的小程序吗?
如果再DIR最新文件,再用for token之类的,实在是好麻烦的

問題2:for  語句裏是不是可以用 do (………………) & (…………)這個樣的形式?

[ Last edited by pillow on 2006-1-4 at 15:18 ]

2006-1-4 11:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pillow
初级用户





积分 196
发帖 82
注册 2005-9-26
状态 离线
『第 9 楼』:  

自己找到了個方法
先for %%a in (contact*.xls) do  set name=%%a
再copy %name% 至目的目錄
請問還有其它更好的方法嗎?比如用&那樣的方式 ?

2006-1-4 15:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 10 楼』:  

Re pillow:

      for 中允许使用 do (statement1) & (statement2) & ... 的语法,我在5楼中的第二行代码便是类似的实现。

  Quote:
請問還有其它更好的方法嗎?比如用&那樣的方式

下面还是批处理的方案,将它保存至批处理中,并置于 contact*.xls 目录下,然后点击运行即可打开对应 excel 文档。

for /f "delims=" %%f in ('dir contact*.xls /b /o-n') do copy "%%f" "dest_path\." && start "dest_path\%%~nxf" && goto:EOF

      或者将批处理放在各个用户的目标目录下,批处理内容为:

for /f "delims=" %%f in ('dir src_path\contact*.xls /b /o-n') do copy "%%f" && start "%%~nxf" && goto:EOF

      至于goto:EOF ,:EOF 为批处理文件缺省的结束标签,goto:EOF 即为在for循环执行一次,找到最新的文件并作出处理后,直接跳出。



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-1-4 16:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pillow
初级用户





积分 196
发帖 82
注册 2005-9-26
状态 离线
『第 11 楼』:  

這樣啊……懂了,用&用兩個,我以前誤以為是要用   () & () 這樣的形式呢,謝啦!

您的新方法中是使用了擴充變量到文件名吧?有了新思路了!謝謝!

2006-1-4 17:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: