2014-09-20 139 views
1

影響我剛剛發現,如果你做到以下幾點:直到新線運行設置變量,並採取在一個批處理命令行

set Variable=Test & echo %Variable% --Outputs "%Variable%" 
echo %Variable%      --Outputs "Test" 

的變化將不會生效。我需要立即生效,因爲我需要使用一條很長的一行命令。

回答

2

您需要延遲擴展或call echo

@echo off 

setlocal enableDelayedExpansion 

set var=val&echo !var! 

endlocal 

set var=val&call echo %%var%% 

如果有命令的成分放在一起用&或括號set命令生效後,所有的人都executed.So需要或延遲擴展(這將讓你與!代替%訪問的變量),或致電

爲了能夠在命令提示符下延遲擴展,你需要這樣開始cmd /v:on

>cmd /v:on 
>set Variable=Test & echo !Variable! 
+0

它的工作,但我不知道如何使用它與其餘的命令。在這之後,我必須在每一個命令前面打電話嗎?編輯:我剛看到你的新評論。讓我試試看。 – 2014-09-20 16:08:39

+0

好的,它的工作。謝謝你的幫助! – 2014-09-20 16:21:20

相關問題