簡體   English   中英

批處理-通過FOR循環中的IF語句設置變量“卡住”

[英]Batch - setting a variable via IF statement in FOR loop “stuck”

我正在研究從輸入文件中讀取列的lil'腳本:

@echo off
setlocal enabledelayedexpansion
FOR /F "tokens=2,3,4,5,7,8,9,12,14" %%a IN ('type %1') do (
    set event="NULLA"
    echo %event% - %%h
    if "%%h"=="i" ( set event=FELTOLTES )
    echo %event% - %%h
    if "%%h"=="o" ( set event=LETOLTES )
    echo %event% - %%h
    if "%%h"=="d" ( set event=TORLES )
    echo %event% - %%h  
    echo ---------------------
}

但是,如果我運行它,則必須在所有步驟中運行%event%變量(即使是第一個變量,也要在if "%%h"=="i" ),並且輸入文件的所有行均為“ TORLES”,即在最后一個IF語句中定義:

TORLES - i
TORLES - i
TORLES - d
TORLES - i  
TORLES - d
TORLES - d
TORLES - o
TORLES - d

我在這里做錯什么了嗎? 在IF語句周圍嘗試了加引號,但是沒有成功。

@echo off
setlocal enabledelayedexpansion
FOR /F "tokens=2,3,4,5,7,8,9,12,14" %%a IN ('type %1') do (
    set event="NULLA"
    echo !event! - %%h
    if "%%h"=="i" ( set event=FELTOLTES )
    echo !event! - %%h
    if "%%h"=="o" ( set event=LETOLTES )
    echo !event! - %%h
    if "%%h"=="d" ( set event=TORLES )
    echo !event! - %%h

    echo ---------------------
)

當您使用延遲擴展並嘗試在方括號上下文中設置/訪問變量時,您需要使用! 代替%

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM