楼 主
如何判断参数是文件还是目录
发表于 2006-06-03 20:17 · 中国 辽宁 大连 电信
初级用户
★
积分 110
发帖 27
注册 2006-06-03 17:25
UID 56491
状态 离线
在批处理要对传入参数的的文件进行操作,如果文件没有,而目录有,操作时就会出错,所以想判断一下,我的操作是用if exist path\nul,但是长文件名时,判断不出来,应该怎么弄?
给批处理传入一个参数,如何判断它是文件名还是目录名?
第 2 楼
发表于 2006-06-03 20:25 · 中国 山西 临汾 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线
Re wentimao:
提问请注明你的系统环境(DOS/98/XP)和脚本环境(COMMAND/CMD),如果将这个参数写道你的用户签名中,可以不用每次都转贴这些数据。
在CMD中判断文件或者目录的存在,一般不再用NUl了。
判断是否存在目录: if exist "%~f1\" ...
判断是否存在文件: if exist "%~f1" if not exist "%~f1\"...
※ Batchinger 致 Bat Fans:请访问
批处理编程的异类 ,欢迎交流与共享批处理编程心得!
第 3 楼
发表于 2006-06-06 19:23 · 中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线
Re wentimao:
关于你在其它主题中提到的同名目录和文件的存在性判断问题,答复如下:
1、在CMD和COMMAND中,极少会出现目录和文件完全同名同路径的情况,这是DOS/Windows的文件系统规则所不允许的;如果真的出现了,那应该属于系统的问题,应该由系统自己解决,而非由我们的代码来兼容这个问题。
2、如果确实想判断“存在目录时同名的文件是否存在”,可以使用(但不推荐)如下的代码:
(for /f "usebackq" in ("%~f1") do ...)2>nul
※ Batchinger 致 Bat Fans:请访问
批处理编程的异类 ,欢迎交流与共享批处理编程心得!
第 4 楼
发表于 2010-12-04 15:58 · 中国 广东 东莞 电信
新手上路
★
积分 14
发帖 13
注册 2010-12-01 15:41
UID 178657
性别 男
状态 离线
Originally posted by willsort at 2006-6-3 20:25:
Re wentimao:
提问请注明你的系统环境(DOS/98/XP)和脚本环境(COMMAND/CMD),如果将这个参数写道你的用户签名中,可以不用每次都转贴这些数据。 ...
我想请教:怎么知道自己的脚本环境是COMMAND还是CMD?
第 5 楼
发表于 2010-12-04 16:28 · 中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
在什么系统下运行?
是在cmd直接运行还是在批处理中运行?
第 6 楼
发表于 2010-12-04 17:06 · 中国 广东 东莞 电信
新手上路
★
积分 14
发帖 13
注册 2010-12-01 15:41
UID 178657
性别 男
状态 离线
Originally posted by Hanyeguxing at 2010-12-4 16:28:
在什么系统下运行?
是在cmd直接运行还是在批处理中运行?
非常感谢你的回复,
我看这些贴都好几年了,我以为。。。。呵呵
终于看到一个在线人了

握手、、、
论坛跳转: