2017-03-29 12 views
1

変数の中から引数を使用することはできますか?Batファイルのグローバル変数内の引数解決

いくつかのbatファイルの先頭に使用されるグローバル変数が必要です。

は、私が回避策または単純なコピーペーストでこの問題を解決するためのいくつかの方法を知っているが、可能性が1つのライナーを持っていると思い

%var% > lastBatExecuted.txt 
set /p last=<lastBatExecuted.txt 
if "%last%"=="%~n0 %*" echo it worked 
pause 

sample.bat変数

setx var "echo %~n0 %*" 

を設定します変数の中に入れます。

(私はまだちょうど%var%を呼び出すことができるよ場合は、長さは、問題にはならないでしょう)

答えて

1

はい、このメソッドは動作しますが、あなたは、二重のパーセント記号と変数の値を定義し、挿入する必要があります最初の%var%展開後のパーセント記号を再評価するために、追加のcallコマンドを使用します。このテストを参照してください。

@echo off 
setlocal 

set "var=echo One: %%~n0 %%*" 
%var% 
call %var% 

set "var=call echo Two: %%~n0 %%*" 
%var% 

使用例:varsetxコマンドで定義されている場合

C:\> test Arg1 Arg2 

出力

One: %~n0 %* 
One: test Arg1 Arg2 
Two: test Arg1 Arg2 

同じ動作が動作するはずです。

関連する問題