无忧启动论坛

标题: 批处理文件名也有讲究???? [打印本页]

作者: 13545240    时间: 2009-9-5 23:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: NicTense    时间: 2009-9-5 23:43
省略后缀的时候,优先度 .com>.exe>批处理,但是当你把批处理名字改成与要执行的命令同名的时候

如果批处理所在目录和执行命令的文件不一致时,直接运行的时候,批处理会先找到自己,当然会出错

for %%i in (C D E F G H Y J K L M N O P Q R T U V W X Y Z) do echo Y|chkdsk.exe /f /x %%i:

这样改成chkdsk.bat也没问题了

[ 本帖最后由 NicTense 于 2009-9-5 23:45 编辑 ]
作者: haiou327    时间: 2009-9-6 00:36
com>bat>exe
作者: NicTense    时间: 2009-9-6 10:45
原帖由 haiou327 于 2009-9-6 00:36 发表
com>bat>exe


我刚刚特意测试了一下,在一个有exe文件的目录下,写一个与exe文件同名的bat文件,内容为 echo bat
不打后缀名的情况下,执行的还是exe文件
所以至少在我这里,exe>bat,版主是不是自己改过这个优先顺序啊

另外,同样是批处理 bat>cmd

对了,请教一下楼主,你的do后面的echo Y有什么作用的,我没弄明白这里为什么要先显示个Y
作者: sgw888    时间: 2009-9-6 11:38
以前学习纯DOS的时候,执行的优先级是COM>EXE>BAT。 XP下应该也是一样的吧?

如果楼主今天才知道这个问题,那么楼主的基本功没有打好,或者说是一上来就开始研究批处理,而没有学习DOS操作的相关知识。

看来基础知识还是相当重要的。

[ 本帖最后由 sgw888 于 2009-9-6 11:40 编辑 ]
作者: sgw888    时间: 2009-9-6 11:45
原帖由 NicTense 于 2009-9-6 10:45 发表


我刚刚特意测试了一下,在一个有exe文件的目录下,写一个与exe文件同名的bat文件,内容为 echo bat
不打后缀名的情况下,执行的还是exe文件
所以至少在我这里,exe>bat,版主是不是自己改过这个优先顺序啊 ...

echo y的作用就是显示字符y啊,这个很简单。关键是“|”可以把Y直接作为后面命令的输入。

说简单一点就是后面命令执行过程中会要求用户手动输入Y进行确认,因为是自动批处理,所以需要自动输入Y让程序继续下去,这样就可以用 echo y|  来作为后面命令的输入。
作者: NicTense    时间: 2009-9-6 13:34
原帖由 sgw888 于 2009-9-6 11:45 发表

echo y的作用就是显示字符y啊,这个很简单。关键是“|”可以把Y直接作为后面命令的输入。

说简单一点就是后面命令执行过程中会要求用户手动输入Y进行确认,因为是自动批处理,所以需要自动输入Y让程序继续 ...


原来是管道啊,我把它看成||了,所以觉得很奇怪,呵呵

基本上没用过chkdsk,原来这个也要确认的啊




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3