簡體   English   中英

將帶有'&'的路徑傳遞給批處理文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM