批处理脚本插入不需要的空格填充特殊字符
问题描述:
我有一个非常简单的脚本输入用户名和密码。某些密码包含特殊字符,如:!,@,#,$,^,&,*,(,),_。问题是,当他们输入这些字符中的一个时,它会在变量内部的任一侧填充空格。批处理脚本插入不需要的空格填充特殊字符
这里是我的代码和一个例子:
echo Enter UserName:
set/p user=
echo Enter Password:
set/p pass=
echo %pass%
net use R: \\serverhere /USER:%user% %pass%
,如果我进入:Test!Password
我的密码, 它会输出:Test ! Password
在net use命令%合格%,这会造成一些问题
我怎样才能解决这个问题?
答
我不认为注入空格有问题,但是你会遇到特殊字符的问题。
所以最好的方法是使用延迟扩展,因为它不关心特殊字符。
setlocal EnableDelayedExpansion
echo Enter UserName:
set/p user=
echo Enter Password:
set/p pass=
echo !pass!
net use R: \\serverhere /USER:!user! !pass!
您的样品已输入错误!输入'Test!Password'将产生'Test!Password'的输出,或者如果在TestPassword中启用了延迟扩展。有没有空格 – jeb 2013-04-29 14:55:09
所以问题是当我尝试使用网络使用命令中的变量 – Peter 2013-04-29 14:57:18