我想聲明並在我的批處理文件中使用變量。它看起來應該很簡單。聲明和使用Windows批處理文件(.BAT)中的變量
@ECHO OFF
SET location = "bob"
ECHO We're working with "%location%"
我得到的輸出是:
We're working with ""
這是怎麼回事?爲什麼我的變量不被echo'd?
我想聲明並在我的批處理文件中使用變量。它看起來應該很簡單。聲明和使用Windows批處理文件(.BAT)中的變量
@ECHO OFF
SET location = "bob"
ECHO We're working with "%location%"
我得到的輸出是:
We're working with ""
這是怎麼回事?爲什麼我的變量不被echo'd?
=
之前的空格被解釋爲名稱的一部分,並且它後面的空格(以及引號)被解釋爲值的一部分。所以你創建的變量可以用%location %
引用。如果這不是您想要的,請刪除定義中的額外空間。
空格很重要。您創建了一個名爲'location '
的變量,其值爲' "bob"'
。
如果你想在你的價值的報價,那麼你的代碼應該看起來像
set location="bob"
如果你不想報價,那麼你的代碼應該看起來像
set location=bob
或者更好的
set "location=bob"
最後一個語法可以防止無意中的空格進入該值,並且還保護了再次t特殊字符,如& |等
輸入location.bat
@echo off
cls
set /p "location"="bob"
echo We're working with %location%
pause
輸出
We're working with bob
(錯誤沒有做:space
和" "
)
感謝布賴恩。問題解決了。 –
如果'='之前的空格被解釋爲名稱的一部分,那麼變量*不能被引用爲'%location%',它必須被引用爲'%location%'。這是一個錯字嗎? –
@可悲的變數:你是對的;似乎原來的答案成爲不正確編輯的受害者。 –