批處理腳本--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=請輸入文本:

相關文章
相關標籤/搜索