Board logo

标题: [文本处理] 批处理中的用户名user为何输不出来? [打印本页]

作者: zyb159357    时间: 2013-3-2 11:26     标题: 批处理中的用户名user为何输不出来?

请问下面批处理代码怎么用户名user输不出来?该如何改进解决?
现运行后:
用户名:
密码:bbbb
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set v=1
  4. for /f  %%i  in (a.txt) do (
  5. if !v!==1 (
  6. set user=%%i
  7. set v=2
  8. )else set pass=%%i  
  9. )
  10. @echo 用户名:!user!
  11. @echo 密码:!pass!
  12. pause
复制代码
a.txt内容:
aaaa
bbbb
作者: weichenxiehou    时间: 2013-3-2 12:29

  1. @echo off
  2. (set/p user=
  3. set/p pass=
  4. )<a.txt
  5. echo,user:%user%
  6. echo,password:%pass%
复制代码

作者: zyb159357    时间: 2013-3-2 12:55

先谢谢2楼。但我的主要目的是想知道上面的用户名为什么没有输出来,这例子我是用于调试用的。

最原代码是这个:
@echo off
setlocal EnableDelayedExpansion
rem get username and password from temp file as %1  注:本批处理是服务器脚本,%1是从客户rem 端中得到用户名和密码
set v=1
for /f  %%i  in (%1) do (
if !v!==1 (
set user=%%i
set v=2
)else set pass=%%i  
)
作者: weichenxiehou    时间: 2013-3-2 14:44

回复 3# zyb159357
把set v=1和set v=2后面多余的空格去掉……最好是写成set "v=1"和set "v=2"
作者: zyb159357    时间: 2013-3-2 15:05

晕,终于找到问题了,set v=1的1后面多了个空格。 反思:看来写批处理还不能随便用写字板/记事本来写,得用写程序专业些的工具。
作者: zyb159357    时间: 2013-3-2 15:21

谢谢三楼的大师,我找了半天刚才也出问题和你所说的一样一样的。再次感谢~
作者: BAT-VBS    时间: 2013-3-2 16:06

回复 6# zyb159357


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2