找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25352|回复: 4

[系统相关] 求解批处理中if not defined的意义

[复制链接]
发表于 2015-11-11 21:59:25 | 显示全部楼层 |阅读模式

  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
复制代码
上面这段代码,为何要先建立一个后面没使用的空变量呢?
发表于 2015-11-11 22:32:35 | 显示全部楼层
这代码谁写的[都没有值了还设置空值,真有创意]
判断没有设定这个变量值时执行
发表于 2015-11-12 18:48:06 | 显示全部楼层
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
复制代码
 楼主| 发表于 2015-11-16 00:41:32 | 显示全部楼层
回复 3# tmplinshi


    那么设置一个空格变量的作用是什么?为何省略第一行后面的ping命令就无法执行?
发表于 2015-11-16 11:49:04 | 显示全部楼层
回复 4# crist


    如果没有这个s变量,那就等同于:
start /min "" %0
无限循环的恶作剧的代码你懂得
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 11:57 , Processed in 0.017065 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表