循环批处理无法设置变量

时间:2014-04-29 01:06:58

标签: batch-file batch-processing

任务是迭代名为alts.txt的文件中的每一行。然后我抓住该行并将其拆分为分号,并在分号前和分号后打印出文本。

我的文件看起来像这样...

username:password
username2:password2
username3:

我目前的代码是:

setlocal ENABLEDELAYEDEXPANSION
set file=alts.txt
for /f "tokens=*" %%A in (%file%) do (
    set str=%%A
    set "username=%str::="^&REM #%
    set "pass=%str:*:=%"
    echo username=%username% pass=%pass%
)
pause

如果有人愿意向我展示我的错误,并且确切地说如何解决错误,我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

@echo off
setlocal ENABLEDELAYEDEXPANSION
set file=alts.txt
for /f "tokens=1,2 delims=:" %%A in (%file%) do (
    set "$user=%%A"
    set "$pass=%%B"
    echo username=!$user! pass=!$pass!
)
pause

小心使用%username%.它是一个系统变量。您可以在CMD提示中测试编写echo %username%。你最好像我一样为变量选择另一个名字。