2012-06-13 200 views
0

我嘗試使用下面的代碼傳遞「=」號作爲參數傳遞給一個bat文件

start "" "abc.exe" %1 %2 %3 %4 

我的第一個參數(%1)是推出從一個bat文件一個exe加密認證ID,這個ID包括兩個=唱歌在結束

我的問題是我每次經過%1個說法時,簽署這兩個=由bat文件刪除。

因此,我無法按預期運行應用程序。

請給我如何如果你開始一個exe程序解決這個問題

--Rangana

+0

你真的使用這條線在批處理'開始「」「abc.exe」%1%2%3%4'開始'abc.exe'或者你使用像線'開始「 「」abc.exe「%param1%%param2%%param3%%param4%'?如果你真的使用'%1',它來自哪裏並且它包含'=='? – jeb

+0

我使用它像啓動「」「abc.exe」%1%2%3%4,它來自一個小程序,我試圖從Web應用程序調用一個C#應用程序,這是一個單一的登錄情況。我從applet中調用一個bat文件。 bat文件包含上面的代碼。 –

回答

0

一些想法,它應該能夠解析所有它的命令。

因此,您應該確定您的參數確實包含預期數據。

你可以用硬編碼參數來試試它。

start "" "abc.exe" a$deD343aD5== param2 param3 param4 
0

批次治療以下字符作爲分隔符參數:<space> <tab> , ; = <0xFF>。請注意0​​是一個不間斷的空間。

將任何分隔符作爲參數值的一部分包含在內的唯一方法是將該參數括在雙引號中。

這是由調用者用引號括起來的值。因此,如果第一個參數應該是$ deD343aD5 ==,那麼你的批處理腳本必須稱爲

scriptName "a$deD343ad5==" param2 param3 param4 

如果你不想引號傳遞到您的exe文件,那麼你可以使用內~修改您的批處理腳本修剪封閉的引號。但是你必須小心,因爲如< > & |這樣的特殊字符會導致問題,如果它們沒有引用或轉義。

::This will preserve any enclosing quotes around each parameter 
start "" "abc.exe" %1 %2 %3 %4 

::This will strip any enclosing quotes around each parameter (if they exist) 
start "" "abc.exe" %~1 %~2 %~3 %~4 
相關問題