中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 12:20
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何判断参数是文件还是目录
可打印版本  3,031 / 5
第1楼 wentimao 发表于 2006-06-03 20:17
初级用户 发帖 27 积分 110
如何判断参数是文件还是目录
在批处理要对传入参数的的文件进行操作,如果文件没有,而目录有,操作时就会出错,所以想判断一下,我的操作是用if exist path\nul,但是长文件名时,判断不出来,应该怎么弄?
给批处理传入一个参数,如何判断它是文件名还是目录名?
第2楼 willsort 发表于 2006-06-03 20:25
元老会员 发帖 1,512 积分 4,432
Re wentimao:

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

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

判断是否存在目录: if exist "%~f1\" ...
判断是否存在文件: if exist "%~f1" if not exist "%~f1\"...
第3楼 willsort 发表于 2006-06-06 19:23
元老会员 发帖 1,512 积分 4,432
Re wentimao:

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

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

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

(for /f "usebackq" in ("%~f1") do ...)2>nul
第4楼 sohu 发表于 2010-12-04 15:58
新手上路 发帖 13 积分 14
Originally posted by willsort at 2006-6-3 20:25:
Re wentimao:

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

我想请教:怎么知道自己的脚本环境是COMMAND还是CMD?
第5楼 Hanyeguxing 发表于 2010-12-04 16:28
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
在什么系统下运行?
是在cmd直接运行还是在批处理中运行?
第6楼 sohu 发表于 2010-12-04 17:06
新手上路 发帖 13 积分 14
Originally posted by Hanyeguxing at 2010-12-4 16:28:
在什么系统下运行?
是在cmd直接运行还是在批处理中运行?

非常感谢你的回复,

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

终于看到一个在线人了握手、、、
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023