2011-08-05 36 views
0

我在編寫BAT文件方面相當新穎。所以,我需要創建一個BAT文件,它將在命令提示符下接受用戶名和密碼,並使用這些值來處理ORACLE中的某些SQL命令。這很簡單,我已經這麼做了,它會提示用戶輸入ORACLE的用戶名,密碼和數據庫。它們分別是value1,value2和value3。DOS BAT命令:如何接受分號作爲輸入

這裏的問題是,ORACLE密碼包含分號。並且,當分號在CMD提示符中輸入時,該值不正確。例如。密碼是「abc; cde」。不知何故,value2只讀作「abc」。有人可以幫忙嗎?在提示過程中,我試圖輸入雙引號,但它仍然是一樣的。此外,我寧願不讓用戶在提示過程中輸入雙引號,因爲這可能與實際密碼混淆。

請協助。

+0

不要將DOS與Windows中的某些命令解釋器混淆。 DOS是一個操作系統。 –

回答

2

你的問題是有點短的細節。

你確定你讀的密碼實際上是讀取「;」部分?

我不能告訴你的問題是否「;」不會讀入「value2」,或者它實際上是在「value2」中,但不會正確傳遞給Oracle客戶端。 沒有更多的細節,不可能給出正確的答案。

爲了記錄在案:

set /P VALUE2= 
echo %VALUE2% 

將讀取包含文本 「;」並將其回顯到屏幕。

+0

嗨Tonny, 我期待「value2」是「abc; cde」。當我做了「value2」的回顯時,它顯示爲「abc」。 – cooldude

+0

它適用於Windows 7和2003服務器(r2)上的我。你在哪個操作系統上?你真的指DOS還是你的意思是CMD shell?他們看起來一樣,但真的非常不同。 – Tonny

0

只能使用%*,機器人使用%1,%2%<n>訪問;

但是即使這樣,嘗試從命令行讀取密碼也是一個壞主意,因爲它不能訪問所有允許/可能的密碼。

密碼:a&b|c^w%cd% 絕對不能以這種方式訪問​​。

我還希望Tonny的小費在批處理中使用set /p來輸入密碼。