中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何判断参数是文件还是目录
作者:
标题: 如何判断参数是文件还是目录 取消高亮 | 上一主题 | 下一主题
wentimao
初级用户





积分 110
发帖 27
注册 2006-6-3
状态 离线
『楼 主』:  如何判断参数是文件还是目录

在批处理要对传入参数的的文件进行操作,如果文件没有,而目录有,操作时就会出错,所以想判断一下,我的操作是用if exist path\nul,但是长文件名时,判断不出来,应该怎么弄?
给批处理传入一个参数,如何判断它是文件名还是目录名?

2006-6-3 20:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


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

Re wentimao:

      提问请注明你的系统环境(DOS/98/XP)和脚本环境(COMMAND/CMD),如果将这个参数写道你的用户签名中,可以不用每次都转贴这些数据。

      在CMD中判断文件或者目录的存在,一般不再用NUl了。

      判断是否存在目录: if exist "%~f1\" ...
      判断是否存在文件: if exist "%~f1" if not exist "%~f1\"...



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-6-3 20:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


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

Re wentimao:

      关于你在其它主题中提到的同名目录和文件的存在性判断问题,答复如下:

      1、在CMD和COMMAND中,极少会出现目录和文件完全同名同路径的情况,这是DOS/Windows的文件系统规则所不允许的;如果真的出现了,那应该属于系统的问题,应该由系统自己解决,而非由我们的代码来兼容这个问题。

      2、如果确实想判断“存在目录时同名的文件是否存在”,可以使用(但不推荐)如下的代码:

(for /f "usebackq" in ("%~f1") do ...)2>nul



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-6-6 19:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sohu
新手上路





积分 14
发帖 13
注册 2010-12-1
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by willsort at 2006-6-3 20:25:
Re wentimao:

      提问请注明你的系统环境(DOS/98/XP)和脚本环境(COMMAND/CMD),如果将这个参数写道你的用户签名中,可以不用每次都转贴这些数据。 ...

我想请教:怎么知道自己的脚本环境是COMMAND还是CMD?

2010-12-4 15:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 5 楼』:  

在什么系统下运行?
是在cmd直接运行还是在批处理中运行?



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-12-4 16:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sohu
新手上路





积分 14
发帖 13
注册 2010-12-1
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by Hanyeguxing at 2010-12-4 16:28:
在什么系统下运行?
是在cmd直接运行还是在批处理中运行?

非常感谢你的回复,

我看这些贴都好几年了,我以为。。。。呵呵

终于看到一个在线人了握手、、、

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

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


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



论坛跳转: