找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23692|回复: 6

[文本处理] 批处理中的用户名user为何输不出来?

[复制链接]
发表于 2013-3-2 11:26:42 | 显示全部楼层 |阅读模式
请问下面批处理代码怎么用户名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
发表于 2013-3-2 12:29:23 | 显示全部楼层

  1. @echo off
  2. (set/p user=
  3. set/p pass=
  4. )<a.txt
  5. echo,user:%user%
  6. echo,password:%pass%
复制代码
 楼主| 发表于 2013-3-2 12:55:28 | 显示全部楼层
先谢谢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  
)
发表于 2013-3-2 14:44:20 | 显示全部楼层
回复 3# zyb159357
把set v=1和set v=2后面多余的空格去掉……最好是写成set "v=1"和set "v=2"
 楼主| 发表于 2013-3-2 15:05:47 | 显示全部楼层
晕,终于找到问题了,set v=1的1后面多了个空格。 反思:看来写批处理还不能随便用写字板/记事本来写,得用写程序专业些的工具。
 楼主| 发表于 2013-3-2 15:21:55 | 显示全部楼层
谢谢三楼的大师,我找了半天刚才也出问题和你所说的一样一样的。再次感谢~
发表于 2013-3-2 16:06:34 | 显示全部楼层
回复 6# zyb159357


    问题解决后,请编辑顶楼帖子在标题前面注明[已解决],并给回答者加分。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 00:40 , Processed in 0.016623 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表