批处理脚本--for 循环设置值

一同事问批处理脚本怎样截取一段文本,试了一下,发现仍是有不少语法不熟悉,特抽时间记录.net

@echo off
setlocal enabledelayedexpansion

set  txtstr=""
set  isContinue="0"
for /f "delims=" %%a in (1.txt) do (

    if "%%a" == "END-OF-FIELDS"    goto end
    
    if "!isContinue!" == "1" (
        set txtstr=!txtstr!  %%a
    )
    
    if "%%a" == "START-OF-FIELDS" (
        set  /a isContinue="1"
    ) 
)

:end

echo %txtstr%

pause

 

命令说明:code

@echo off 表示执行这条命令后关闭全部命令(包括自己命令)的回显,后面全部的命令均不显示get

echo :这个命令叫“回显”,就是把这条命令的内容显示到控制台数学

echo off :关闭其余全部命令的回显(不包括自己)io

@ : 做用是关闭紧跟其后的一条命令回显class

pause : 做用是是程序暂停变量

“:” : 用于goto语句跳转做用扩展

"delims=" : 指定分隔符,用于分割文本,实例中未指定。语法

setlocal enabledelayedexpansion:延迟环境变量扩展。批处理脚本在执行时,有一个预处理的过程,会将变量预设置为初始值。在示例中,若是没有延迟环境变量扩展设置,isContinue预设置为1,若是在最后执行 echo isContinue时将输出“1”;                    当设置了setlocal enabledelayedexpansion,批处理脚本在执行时会去找变量值。程序

set /a : 执行数学计算

set /p : 提示用户输入。如:set /p a=请输入文本:

相关文章
相关标签/搜索