中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-26 10:05
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求教if exit的问题 查看 1,801 回复 7
楼 主 求教if exit的问题 发表于 2006-10-12 11:37 ·  中国 江西 吉安 遂川县 电信
中级用户
★★
积分 253
发帖 112
注册 2006-05-31 11:12
20年会员
UID 56308
性别 男
状态 离线
格式:if exist 文件名  待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句

如果待执行的命令有两条或两条以上的话,应该怎么写?

再问个:
求段语句,使其有如下效果。
如果D:\下有01.txt 02.txt(两个要同时存在)
则打开01.txt 02.txt的内容
否则删除,(在只有01.txt 或02.txt的情况下)01.txt(或02.txt)

盼答~~~
2 发表于 2006-10-12 11:53 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
1.

if exist 1.txt if exist 2.txt (start "" 1.txt && start "" 2.txt)

2.
@echo off
dir /a-d 1.txt || goto next
dir /a-d 2.txt || goto next
start "" 1.txt & start "" 2.txt
goto :eof

:next
del 1.txt 2.txt 2>nul
goto :eof

代码均未测试...
3 发表于 2006-10-12 11:59 ·  中国 江西 吉安 遂川县 电信
中级用户
★★
积分 253
发帖 112
注册 2006-05-31 11:12
20年会员
UID 56308
性别 男
状态 离线
谢谢喽。。。
试一下先。。
4 发表于 2006-10-12 12:22 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  把2F的代码合并一下,应该能满足楼主的要求:

@echo off
if exist 1.txt if exist 2.txt (start "" 1.txt && start "" 2.txt) else (del 1.txt 2.txt 2>nul)
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
5 发表于 2006-10-12 12:44 ·  中国 浙江 杭州 电信
初级用户
积分 34
发帖 12
注册 2006-09-25 04:45
19年会员
UID 63588
性别 男
状态 离线
请问||在这里是什么用法?逻辑运算吗?
还有加在1.txt 前的''''这里又是什么意思呢?
6 发表于 2006-10-12 12:53 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  1、

& command1 & command2 用来分隔一个命令行中的多个命令。Cmd.exe 运行第一个命令,然后运行第二个命令。
&& command1 && command2 只有在符号 && 前面的命令成功时,才用于运行该符号后面的命令。Cmd.exe 运行第一个命令,然后只有在第一个命令运行成功时才

运行第二个命令。
|| command1 || command2 只有在符号 || 前面的命令失败时,才用于运行符号 || 后面的命令。Cmd.exe 运行第一个命令,然后只有在第一个命令未能运行成

功(接收到大于零的错误代码)时才运行第二个命令。
( ) (command1 & command2) 用来分组或嵌套多个命令。
; 或者 , command1 parameter1;parameter2 用来分隔命令参数。
注意
“与”符号 (&)、管道符号 (|) 以及括号 () 是特殊字符,将它们作为参数传递时,必须在其前面加上转义字符 (^) 或引号。
如果某个命令成功完成操作,则该命令就返回零 (0) 退出代码或不返回任何退出代码。有关退出代码的详细信息,请参阅 Microsoft Windows Resource Kit。

  2、

START




"title" 在窗口标题栏中显示的标题。
  ……

  当filename为带空格的路径的时候,必须用引号把路径括起来,此时,为了避免start把路径当作标题,就在start和路径之间插入一个引号对来区别标题与路径。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
7 发表于 2006-10-12 12:58 ·  中国 浙江 杭州 电信
初级用户
积分 34
发帖 12
注册 2006-09-25 04:45
19年会员
UID 63588
性别 男
状态 离线
嗯,学习ing。谢谢
8 发表于 2006-10-12 20:48 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线

if exist filename.txt (
echo 1
echo 2
echo 3
) else (
echo 4
echo 5
echo 6
)


这个格式可能使用起来方便些。
论坛跳转: