2016-11-15 56 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

相关问题