[英]Passing a Path with '&' to Batch File
我試圖從另一個程序傳遞一個批處理文件的路徑。 另一個程序使用BASIC作為腳本語言。
所以,我通過Shell()命令調用批處理文件。
在shell命令中,我試圖傳入一個帶有符號'&'的路徑。 但是,當它到達批處理文件時,批處理文件將&視為一種轉義序列(我認為)。
例如:
路徑:C:\\ Documents \\ R&D \\ Files
Shell("runscript.bat "C:\Documents\R&D\Files"")
在批處理文件中:
variable=~1
echo %variable%
我得到以下輸出:
C:文檔\\ r
UPDATE
但是,如果我使用像C:\\ Documents \\ RD \\ Files這樣的路徑
此路徑將通過查找並且回顯將打印:
C:\\文檔\\ RD \\文件
我想你想要使用沒有引號的變量。(將它括在引號中會導致你沒有問題。)然后你需要延遲擴展(並使用!
而不是%
來訪問變量):
set "variable=%~1"
echo "%variable%"
setlocal enableDelayedExpansion
echo !variable!
在這里,我假設第一個參數是包含&
另一種選擇是for /f
:
for /f %%a in ("%~1") do echo %%a
Windows允許您使用^
來轉義字符串中的下一個字符。 嘗試R^&D
,如下所示:
C:\Users\Thomas>echo R^&D
R&D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.