我想運行批處理腳本,它需要一個參數(路徑)逃生批輸入內部「雙引號」參數
runas /user:abc "icacls %1 /grant Everyone:(F) /T"
以下,但參數%1
已經包含了"
(因爲它是一個路徑,通過上下文菜單的Send To傳遞 - 我沒有太多的控制權)。 所以當命令在批處理腳本運行它運行這樣的:
runas /user:abc "icacls "c:\folder" /grant Everyone:(F) /T"
所以,很顯然,我需要逃避%1
創建的"
秒。如何通過%1
執行字符串處理以避免引號?
我已經編輯了更清晰的問題 – laggingreflex 2012-08-09 23:33:54
如果%1是一個包含空格的路徑,該怎麼辦? – 2014-05-14 14:59:18
你什麼時候在''''上面使用'''''我發現真正的批處理文件只能用'''''轉義,而'\''版本只適用於非批處理程序('runas'用C++編寫或者識別\作爲轉義字符的語言)。所以,當傳遞變量到非批處理程序時,我們只使用'\「',當傳遞給其他批處理腳本(或批處理函數(例如'CALL:function」parameterWith「」EscapedQuote「'))時,我們只使用'\」' – 2014-11-19 17:16:08