[英]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.