1

我有一个非常简单的脚本,可以输入用户名和密码。某些密码包含特殊字符,例如:!,@,#,$,^,&,*,(,),_。问题是当他们输入其中一个字符时,它会在变量内的任一侧用空格填充字符。

这是我的代码和一个例子:

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 命令中输出:for %pass%,这会导致问题

我怎样才能解决这个问题?

4

1 回答 1

2

我不相信注入空格有问题,但你会遇到特殊字符的问题。

所以最好的方法是使用延迟扩展,因为它不关心特殊字符。

setlocal EnableDelayedExpansion
echo Enter UserName:
set/p user=
echo Enter Password:
set/p pass=
echo !pass!
net use R: \\serverhere /USER:!user! !pass!
于 2013-04-29T14:57:17.007 回答