[英]passing the '=' sign as a parameter to a bat file
我正在嘗試使用以下代碼從bat文件啟動exe
start "" "abc.exe" %1 %2 %3 %4
我的第一個參數(%1)是一個加密的身份驗證ID,此ID末尾包含兩個=唱歌
我的問題是,每當我傳遞%1參數時,bat文件就會丟棄這兩個=符號。
結果,我無法按預期運行該應用程序。
請給我一些如何解決這個問題的想法
-朗加納
如果您啟動一個exe程序,它應該能夠解析其所有命令。
因此,您應該確保您的參數確實包含預期的數據。
您可以嘗試使用硬編碼參數。
start "" "abc.exe" a$deD343aD5== param2 param3 param4
批處理將以下字符視為參數定界符: <space> <tab> , ; = <0xFF>
<space> <tab> , ; = <0xFF>
。 請注意, <0xFF>
是不間斷的空格。
將任何定界符作為參數值的一部分的唯一方法是將參數括在雙引號中。
調用者應將值括在引號中。 因此,如果第一個參數應為a $ 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.