Board logo

标题: [系统相关] 求解批处理中if not defined的意义 [打印本页]

作者: crist    时间: 2015-11-11 21:59     标题: 求解批处理中if not defined的意义

  1. @echo off
  2. if not defined s set s= && start /min "" %0& exit
  3. ping 192.168.0.1 -t >local.log
  4. exit
复制代码
上面这段代码,为何要先建立一个后面没使用的空变量呢?
作者: /zhqsystem/zhq    时间: 2015-11-11 22:32

这代码谁写的[都没有值了还设置空值,真有创意]
判断没有设定这个变量值时执行
作者: tmplinshi    时间: 2015-11-12 18:48

if not defined s set s= && start /min "" %0& exit

其实这是将 s 设置为空格,并不是设置为空。不信你试试:
  1. @echo off
  2. set s= & set t=123
  3. echo [%s%]
  4. pause
复制代码

作者: crist    时间: 2015-11-16 00:41

回复 3# tmplinshi


    那么设置一个空格变量的作用是什么?为何省略第一行后面的ping命令就无法执行?
作者: WHY    时间: 2015-11-16 11:49

回复 4# crist


    如果没有这个s变量,那就等同于:
start /min "" %0
无限循环的恶作剧的代码你懂得




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2