2016-11-15 57 views
0

我正在構建批處理文件。我想要生成批處理文件,所以我回顯一些批處理文件。問題如下:如何將變量名稱回顯到批處理文件,以便目標文件可以使用變量

我有generate.bat和backup.bat。當我啓動generate.bat時,我收集一些用戶信息並將其保存到backup.bat。在backup.bat中,我收集日期和時間。我將它保存在一個變量中。這怎麼可能給一個變量的名稱保存到該BACKUP.BAT,因此它可以在BACKUP.BAT使用

set /P ALOCATION=First loc.%=% 
set /P BLOCATION=Second loc. %=% 

echo robocopy "%ALOCATION%" "%BLOCATION%%thatpath%" /E /xd "%ALOCATION:~0,3%$Recycle.Bin" >> backup.bat 

我已經在BACKUP.BAT一些代碼:

SET thatpath=%name% 

在此之後設置我回應上面提到的robocopy。但是,我希望每次backup.bat啓動時都使用「thatpath」。

所以要簡短: 我有一個generate.bat,我回應一行到backup.bat,並且我希望該行在backup.bat中使用一個變量。我不希望它在generate.bat中使用,我只是希望它在啓動backup.bat時使用。

+1

什麼是'%=%'部分打算? – aschipfl

+0

@aschipfl我剛剛找到那個好看的:P。你可能知道我怎麼回聲%% a?我現在知道如何回覆%a%,我該怎麼做%% a? – Jason

+0

我認爲這個話題可能值得一個新的問題... – aschipfl

回答

0

您可以使用echo %%variable%%解決此問題。然後它將對其他批處理文件有用。

+0

如何,如果一個變量是%% a例如? – Jason

+0

完全相同的方法:爲每個要輸出的「%」使用雙「%%」。所以'echo %%%% a' –

+0

@KlitosKyriacou,只要你不是在'%% a'循環的範圍內,這是真的,在這種情況下它變成'''',後面是當前'%% a'的迭代值;如果你在循環範圍內,你可以在循環前面設置VAR = %%%% a「',然後在循環內部使用[延遲擴展](http:// ss64)展開'VAR'。 com/nt/delayedexpansion.html)像'!VAR!';或者,你可以環繞另一個循環,例如(for %% b in(%%%% a)do for %% a in(...)do echo %% b' ... – aschipfl

相關問題