我有一个脚本需要迭代文件并检查条件,每当相应的值应该存储到变量并显示时它满足条件。
for /f "tokens=1,6,8 delims= " %%D in (test.txt) do (if %%D==01 (set x=%%I
set y=%%K)
echo %x% %y%)
有人可以帮我解决上面的代码吗?
答案 0 :(得分:1)
令牌符合指定的控件(%%D
),然后%%E
,%%F
。
解决方案:将%%I
替换为%%E
,将%%K
替换为%%F
block statement
(带括号的系列语句)中的 但 %var%
是指语句解析时var
的值,即检查有效性,而不是运行时,也就是说,当值通过循环操作而改变时。
要查看更改后的值,最简单的方法是将echo
语句更改为
call echo %%x%% %%y%%
有关更多信息,请参阅delayed expansion
主题的数百个SO回复中的任意一个。
答案 1 :(得分:0)
可以按照以下方式完成。
@echo off
setlocal enableextensions enabledelayedexpansion
for %%F in ("C:\Users\JOhn\Desktop\Check\*.txt") do SET input=%%F
for /f "tokens=1-10 delims= " %%a in (%input%) do (
if %%a==01 (
set "_y=%%f"
set "_z=%%h")
echo %%a %%b %%c %%d %%e %%f %%g %%h %%i %%j !_y! !_z!)>>temp.txt