2016-11-15 6 views
0

バッチファイルを作成しています。私はバッチファイルを生成したいので、バッチファイルにいくつかの行をエコーし​​ます。問題は次のとおりです。バッチファイルに変数名をエコーし​​て、宛先ファイルで変数を使用できるようにする方法

私はgenerate.batとbackup.batを持っています。 generate.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でいくつかのコード持って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

まったく同じ方法です。出力するすべての "%"に2つの "%%"を使用してください。 'echo %%%% a' –

+0

@KlitosKyriacou、これはあなたが' for %% a'ループの範囲にいない限り真であり、その場合は '%'になり、その後に現在の'%% a'の反復値。もしあなたがループの範囲内ならば、ループの前に 'set" VAR = %%%% a "'を実行して、[delayed expansion](http:// ss64。 com/nt/delayedexpansion.html)は '!VAR!'のようです。あるいは、あなたは '%% b for(%%% a)doのような別のループを囲むことができます。echo %% b' ... – aschipfl

関連する問題