[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理为什么无法改变变量的值?

  1. @echo off
  2. set a1=0
  3. if "%a1%" equ  "0" (
  4. set a1=1
  5. )
  6. echo %a1%
复制代码


为什么执行后 a1 的值还是0呢。正常应该为1 呀

  1. @echo off
  2. set a1=0
  3. if "%a1%" equ  "0" set a1=1
  4. echo %a1%
复制代码
或者
  1. @echo off&setlocal enabledelayedexpansion
  2. set a1=0
  3. if "%a1%" equ  "0" (
  4. set a1=1
  5. )
  6. echo !a1!
复制代码
因为他在括号里面,算是复合句。复合句里面设置变量要用变量扩展
心累~努力,为了美好的明天。

TOP

我这里运行正常与延迟变量没关系

TOP

不是吧 应该是1

TOP

或者因为他在括号里面,算是复合句。复合句里面设置变量要用变量扩展
尘丶 发表于 2015-10-12 21:58



    收到,非常感谢。困扰了我好一阵。

TOP

不是吧 应该是1
terse 发表于 2015-10-12 22:29



    运行一下就知道了

TOP

回复 6# 东北胖子

你改一下 试呢
  1. set ”a1=0“
  2. if %a1% equ  0
复制代码

TOP

回复  东北胖子



你改一下 试呢
terse 发表于 2015-10-12 22:51


不知道为什么,我的之前的代码也正确了。我彻底晕了。

TOP

返回列表