首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用ENABLEDELAYEDEXPANSION

使用ENABLEDELAYEDEXPANSION是一种命令,用于在Windows批处理脚本中启用延迟变量扩展。这允许在for循环中对变量进行修改和访问,而不会影响循环的迭代。

在批处理脚本中,变量扩展是在解析整个脚本时完成的,因此在循环中使用变量时,它们的值是在循环开始时就已经确定的。这意味着,如果在循环中修改了变量的值,那么在循环结束后,这些变量的值将不会保留。

为了解决这个问题,可以使用ENABLEDELAYEDEXPANSION命令来启用延迟变量扩展。这将使得在循环中对变量进行的修改立即生效,并且可以在循环结束后访问这些变量的最终值。

以下是一个简单的示例,演示了如何在批处理脚本中使用ENABLEDELAYEDEXPANSION:

代码语言:txt
复制
@echo off
setlocal ENABLEDELAYEDEXPANSION

for /L %%i in (1,1,5) do (
    set /a sum=sum+%%i
    echo Sum is: !sum!
)

echo Final sum is: %sum%

在这个示例中,我们使用ENABLEDELAYEDEXPANSION来启用延迟变量扩展。在for循环中,我们使用变量sum来计算1到5的和。在每次迭代中,我们使用延迟变量扩展来访问sum的当前值,并将其打印到控制台上。在循环结束后,我们使用延迟变量扩展来访问sum的最终值,并将其打印到控制台上。

请注意,ENABLEDELAYEDEXPANSION只能在Windows批处理脚本中使用,而不能在其他类型的脚本中使用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

批处理重命名系列案例

案例一、 知友问: 想把一个文件夹里的全部文件都命名成 001,002……这样按顺序,什么顺序无所谓,只要名字都变了就行,谁帮忙写个 我给出的代码: @echo off     setlocal enabledelayedexpansion...exit 简单解释: 1.使用 for /r 遍历当前目录(%~dp0)下所有文件,效率比 for /f + dir /s /b 高; 2.if not 语句用于排除 bat 文件本身,全路径是%0...用完以后变成[Yousei-raws] Soul Eater 14 [BDrip 1280x720 x264 FLAC].ass 代码如下: @echo off   set a=0   setlocal EnableDelayedExpansion...我给出的代码: @echo off     set a=100     setlocal EnableDelayedExpansion     for /f "delims=*" %%n in ('...Ps:此处使用 for+dir 的方式,效率虽然会低一点,但是出错率也降低了,容易懂!当然一样可以用 for /r。

987100
  • 【批处理学习笔记】第二十四课:直接传递

    直接传递参数,即在使用call命令时,不使用任何参数,在子函数或子批处理里面直接对主函数(也称父批处理)里面的变量进行修改。这跟汇编语言里面的参数传递方式类似。    ...直接传递参数举例: =============================================== @echo off setlocal enabledelayedexpansion set...该例子中,使用了本节课前面讲到的setlocal enabledelayedexpansion和setlocal disabledelayedexpansion,前者保证了var在for循环里面能够根据我们的意愿进行处理...另外例子中还使用了命令set,利用set对字符串进行了处理。还有一个地方使用了语句goto :eof,该语句相当于C语言里面的return或汇编语言里面的RET,即子程序返回命令。

    51630

    编写批处理文件,调用ffmpeg抽帧

    有需求如下: 一个文件目录下有多个视频,需要对每个视频进行抽帧,并保存到图片文件夹内; 需求分析: 对视频抽帧可以使用ffmpeg,遍历文件目录可以使用批处理; 功能实现: 编写批处理文件,遍历文件夹下所有视频文件...,然后对每个视频调用ffmpeg抽帧; 遍历文件夹下所有mp4文件:使用for循环set src_dir=J:\Download\post for %%a in (%src_dir%\*.mp4) do...( echo %%a )setlocal enableextensions enabledelayedexpansion SET /A COUNT=1 for .... do ( SET /...) endlocalsetlocal enabledelayedexpansion 是什么意思?设置本地为延迟扩展。.../img%%03d.png" 完整代码如下 chcp 65001 setlocal enableextensions enabledelayedexpansion @echo off echo start

    1K40

    Ghost安装Win7XP后自动恢复IP的批处理

    今天维护人员找的我说,最近要推 Win7 了,暂时桌面云没推广,还是使用手动安装 Win7 的方式。...(繁体环境) 1、导出 WinXP 系统 IP 信息: @echo off&setlocal enabledelayedexpansion   title WindowsXP IP信息導出工具(配合恢復腳本所用...pause>nul   start "" d:\ip.txt   exit 2、导出 Win7 系统 IP 信息 @echo off&setlocal enabledelayedexpansion  ...pause>nul   start "" d:\ip.txt   exit Ps:测试过程中,发现 win7 使用 ipconfig 命令,会有个 IPv6 的网关,导致出错,只好用了一个 if 跳出循环...10.197.198.173   MK: 255.255.255.254   GW: 10.197.198.1 最后,通过下面这个脚本读取 d:\IP.txt 内容并恢复 IP: @echo off&setlocal enabledelayedexpansion

    1.1K40

    Windows下bat批处理脚本使用telnet批量检测远程端口小记

    鉴于手头没有更好的解决办法,就先试试看,贴一下我写的 Portqry 相关 demo: ::使用微软官方工具【PortQry】进行检测的代码: @echo off & setlocal enabledelayedexpansion...唉,看来这个工具是不敢使用了,俗话说林子大了什么系统都有嘞! 二、另辟蹊径 既然工具不敢用了,还是继续折腾代码吧!...于是将上面 check 部分修改如下: ::使用telnet命令检测的代码 @echo off & setlocal enabledelayedexpansion   rem 要检测的IP和端口 set...②、进程判断【最新补充】 当使用窗口判断的方案下发各大机房实施的时候,又一个问题出现了!...和最开始统计的 telnet 进程数比对计算,就知道有几个 IP 是不通的了 示例代码: ::使用telnet命令检测的代码 @echo off & setlocal enabledelayedexpansion

    8.5K70

    对图片批量重命名_重命名批处理最大量

    原图: 处理后: 要点提示 ---- for 遍历指定文件,取其名 for %%i in (*.png) do () set /a 定义序号(随循环而变) for循环内用到序号值 需要使用延迟变量...setlocal EnableDelayedExpansion ---- .bat 代码 注:其中REM注释部分,大多是关于截取原文件名的,可删。...REM rename (图片批量rename) REM 说明: REM 遍历所有.png 文件,不用截取文件名字 REM 利用延迟变量n 以此为序号重命名 @echo off setlocal EnableDelayedExpansion...截取后的时间不能直接用来重命名(右图报错),需要格式处理(截取相应字符) 截取字符代码:name:~n,m 笔记速查:批处理基础知识 ---- @echo; @echo off setlocal EnableDelayedExpansion

    1.4K10

    如何用ChatGPT写Shell脚本

    @echo off setlocal enabledelayedexpansion for /l %%i in (1,1,20) do ( set folder=Folder_%%i...是不是非常方便~~ 如果想把文件夹重命名,比如:写一个批处理将目录下所有文件夹重名为1.2.3.4等形式 @echo off setlocal enabledelayedexpansion set...Bash或其他Shell解释器 使用cmd.exe解释器 注释符号 # REM 变量声明 使用variable=value格式 使用set variable=value格式 变量引用 使用$variable...或${variable}方式 使用%variable%方式 条件语句 使用if、elif、else语句结构 使用if、else、goto等语句结构 循环语句 使用for、while、until等循环结构...使用for、if、goto等循环结构 输入输出 使用echo命令输出内容,使用read命令读取用户输入 使用echo命令输出内容,使用set /p命令读取用户输入 数组 支持数组的声明和操作 不支持数组

    29330
    领券