2014-04-29 86 views
0

任务是遍历名为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 

如果有人会好心地告诉我我的错误,究竟该如何解决错误将不胜感激。

+0

要清楚,这是'cmd.exe'吗? – ClickRick

+0

@ClickRick它是一个.bat文件 – user2821370

回答

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%。你最好为我的变量选择另一个名字。