長話短說:我們從腳本接收命令並希望使用 Windows shell 執行它。
目前我們使用的方法類似:
echo start & command & echo finish
除非命令本身包含&符號,否則效果很好,例如
echo begin & if exist c:\temp.txt echo 1 & echo end
如果檔案不存在,將無法寫入「end」。
這可以透過將命令更改為 來解決echo begin & (if exist c:\temp.txt echo 1) & echo end
,但是隨後我們會遇到包含括號符號的命令的問題,例如
echo begin & (echo %PATH%) & echo end
印出“\Hewlett-Packard\HP 此時出乎意料。”因為我的路徑中有 Program Files (x86)。
有什麼方法可以從指令結果轉義特殊字元嗎?
先致謝
答案1
問題是 PATH 中的空格,因此請使用引號。
echo begin & (echo "%PATH%") & echo end