批处理脚本插入不需要的空格填充特殊字符

时间:2013-04-29 14:42:35

标签: batch-file

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

这是我的代码和示例:

echo Enter UserName:
set/p user=
echo Enter Password:
set/p pass=
echo %pass%
net use R: \\serverhere /USER:%user% %pass%

如果我输入:Test!Password作为我的密码, 它会在net use命令中为%pass%输出:Test ! Password,这会导致问题

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

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

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

setlocal EnableDelayedExpansion
echo Enter UserName:
set/p user=
echo Enter Password:
set/p pass=
echo !pass!
net use R: \\serverhere /USER:!user! !pass!