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

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

[复制链接]
发表于 2015-10-12 21:49:08 | 显示全部楼层 |阅读模式
  1. @echo off
  2. set a1=0
  3. if "%a1%" equ  "0" (
  4.         set a1=1
  5. )
  6. echo %a1%
复制代码


为什么执行后 a1 的值还是0呢。正常应该为1 呀
发表于 2015-10-12 21:58:14 | 显示全部楼层
  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!
复制代码
因为他在括号里面,算是复合句。复合句里面设置变量要用变量扩展
发表于 2015-10-12 22:29:15 | 显示全部楼层
我这里运行正常与延迟变量没关系
发表于 2015-10-12 22:29:31 | 显示全部楼层
不是吧 应该是1
 楼主| 发表于 2015-10-12 22:35:35 | 显示全部楼层
或者因为他在括号里面,算是复合句。复合句里面设置变量要用变量扩展
尘丶 发表于 2015-10-12 21:58



    收到,非常感谢。困扰了我好一阵。
 楼主| 发表于 2015-10-12 22:36:20 | 显示全部楼层
不是吧 应该是1
terse 发表于 2015-10-12 22:29



    运行一下就知道了
发表于 2015-10-12 22:51:58 | 显示全部楼层
回复 6# 东北胖子

你改一下 试呢

  1. set ”a1=0“
  2. if %a1% equ  0
复制代码
 楼主| 发表于 2015-10-12 23:26:12 | 显示全部楼层
回复  东北胖子



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


不知道为什么,我的之前的代码也正确了。我彻底晕了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 13:20 , Processed in 0.015769 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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