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

[系统相关] net user命令修改密码含特殊字符的处理?

[复制链接]
发表于 2009-4-11 13:09:33 | 显示全部楼层 |阅读模式
我现在在做一个帐号自动改密的功能,接收用户输入的密码,然后用net user命令进行更改。试了一些字符组合,发现直接输密码串的时候,即
net user test 密码串
这样时,密码串中含有的 |  >  <  ^  %  & 须用 ^ 进行转义,即 abc|abc 这样的密码要变成 abc^|abc ;
而 “ 须用 \ 进行转义, 否则系统会自动忽略,但\ 单独存在时不转义,当后面接 " 时才开始转义,即 net user test  abc"abc  改出来密码实际为 abcabc,而abc\"abc 改出来为abc"abc,abc\\abc改出来为abc\\abc(\单独存在,不转义),abc\\"abc改出来为abc\abc (\后面有",开始转义,\\转成了\,后面只剩一个",自动忽略了)。字符转义规则比较复杂。
为了兼容密码中含空格的情况,我把密码串两端加上了双引号,即 net user test "密码串" 的形式。但这种情况下转义规则变得更加复杂,我现在也没搞清楚。不知道有哪位朋友清楚的能不能比较系统地介绍一下?

上面的测试是在winxp cmd下进行的。

[ 本帖最后由 imchpy 于 2009-4-11 14:39 编辑 ]
 楼主| 发表于 2009-4-11 16:58:27 | 显示全部楼层
没人理我。。。
换个问题: 我用命令 set hi=a 设置了hi变量后,想用命令mkdir建立一个 %hi% a 的目录(a前面有个空格),应该写什么命令?以下是我的测试结果:

  1. 命令                                          结果
  2. mkdir "%hi% a"                         a a
  3. mkdir "^%hi% a"                       ^a a
  4. mkdir "^%hi^% a"                     ^%hi^% a
  5. mkdir "%hi^% a"                       %hi^% a
  6. mkdir ""^%hi^%" a"                    %hi% a
复制代码

只有最后一个是满足要求的。根据之前的测试,我大概猜出是什么规则,但这样的规则实在很难在程序中进行判断控制。所以请教大虾,除了上述最后那个形式,用mkdir怎样建这个目录?

[ 本帖最后由 imchpy 于 2009-4-11 17:01 编辑 ]
发表于 2009-4-11 17:05:52 | 显示全部楼层
md "%%hi%% a"
是这个意思吗:转义百分号?
 楼主| 发表于 2009-4-11 17:26:43 | 显示全部楼层
原帖由 yslyxqysl 于 2009-4-11 17:05 发表
md "%%hi%% a"
是这个意思吗:转义百分号?


谢谢你的回复。
这个结果不符合要求。
这个命令的输出是   %a% a
也就是说hi变量还是被置换进去了,要求的输出必须是  %hi% a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 03:37 , Processed in 0.017453 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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