2013-04-29 18 views
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命令%合格%,這會造成一些問題

我怎樣才能解決這個問題?

+0

您的樣品已輸入錯誤!輸入'Test!Password'將產生'Test!Password'的輸出,或者如果在TestPassword中啓用了延遲擴展。有沒有空格 – jeb 2013-04-29 14:55:09

+0

所以問題是當我嘗試使用網絡使用命令中的變量 – Peter 2013-04-29 14:57:18

回答

2

我不認爲注入空格有問題,但是你會遇到特殊字符的問題。

所以最好的方法是使用延遲擴展,因爲它不關心特殊字符。

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

編輯:我的錯誤 – foxidrive 2013-04-29 15:06:00

+0

非常感謝,工作!我從來沒有想過這件事 – Peter 2013-04-29 15:18:04