我有一个文本文件(text.txt),列出了一个人的名字,然后是他们喜欢的颜色(见下文)。我想分配变量" name"该人的姓名和变量" color"这个人最喜欢的颜色。
现在,我的代码通过跳过其他所有行来正确地提取名称,但它没有指定该人最喜欢的颜色。非常感谢任何帮助。
text.txt
john
blue
matt
red
susan
yellow
我的剧本:
@echo off
setlocal enabledelayedexpansion
set x=0
for /f "delims=" %%a in (C:\text.txt) do (
set /a "x=(x+1) %% 2"
if !x! == 1 set color=%%a
if !x! == 0 call echo !color!
)
当前输出:
john
matt
susan
答案 0 :(得分:2)
你的循环中存在逻辑问题。您必须先读取名称,然后才能读取颜色,只有在同时拥有这两个信息时才会打印。
@echo off
setlocal enabledelayedexpansion
set x=0
for /f "delims=" %%a in (text.txt) do (
if !x! == 0 set name=%%a
if !x! == 1 (
set color=%%a
echo !name!,!color!
)
set /a "x=(x+1) %% 2"
)
结果:
john,blue
matt,red
susan,yellow
答案 1 :(得分:2)
也许这种方法更简单/更清晰:
@echo off
setlocal enabledelayedexpansion
set "name="
for /f "delims=" %%a in (C:\text.txt) do (
if not defined name (
set "name=%%a"
) else (
echo !name!,%%a
set "name="
)
)