2016-03-19 16 views
3

Ben pencerelerde env değişkenleri olduğunu varsayalım (adlandırılmış s.bat) Ben s.bat IA çalıştırdığınızdaKendisinin bir değişken olduğu env değeri nasıl alınır? <pre><code>IA=C:a IB=C:b </code></pre> <p>şimdi bir yığın senaryo yazmak</p>:

@echo off 
set var=%1 
echo %var% 

, sonuç IA, ama aslında Sonucun C:\a olmasını isteyin. Bu ihtiyacı nasıl sağlayabilirim?

+0

"set var ="% IA "'? –

+0

Bu yönetime ulaşmanın yolu [burada] (http://stackoverflow.com/questions/35993396/expand-variables-in-variables-with-a-batch-file) veya [here] (http: //) olarak tanımlanmıştır. stackoverflow.com/questions/35532216/cmd-piping-echo-to-set-expanding-variables-in-variables/35538235#35538235). Kullanılan yöntemin ayrıntılı bir açıklaması [burada] verilmiştir (http://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990 # 10167990). – Aacini

cevap

5

Geciken genişlemeyi veya çağrı numarasını kullanabilirsiniz.

@echo off 
setlocal EnableDelayedExpansion 
set "varname=%1" 
echo %varname% 
echo !%varname%! - This works 
call echo %%varname%% - This too 
İlgili konular