4
我在循環的DOS腳本中有一個變量賦值問題。它從不分配值,它總是空白。以下示例代碼%%一個的循環的DOS批處理文件中的變量賦值問題
@echo off
set ans=%1
SET STRING=%ans:"=%
echo Parsing the string "%STRING%":
for /f "tokens=1-2" %%a in ("%STRING%") do (
set Word1 =%%a
echo Word 1: %%a
echo Word 1: %Word1%
set Word2 =%%b
if %%b.==. (Set server =\\.\pipe\mssql$microsoft##ssee\sql\query) else (Set server =%%b)
)
echo Server name "%server%"
sqlcmd -s %server%
值不被分配給變量字1。但是當我回顯%% a時,它顯示正確的值。以及在最後一個空值檢查是否條件,服務器變量從未設置。我在這裏很困惑。有人可以幫我嗎??
P.S:輸入腳本是任何2字字符串(如:a.bat 「L DEV-服務器」)
請注意,正如本頁http://ss64.com/nt/setlocal.html所述,默認情況下未啓用延遲擴展。 要啓用它,您需要在您的腳本中添加以下行: SETLOCAL EnableDelayedExpansion – 2012-10-31 17:08:56
感謝Diego獲取更多信息。 – Sven 2014-04-07 05:29:23