2016-04-01 3 views
1

ich ein wenig für Schleife haben:Merge eine Array-Variable mit einer Variablen verwenden, wenn Batch File

for /f "delims=: tokens=*" %%e in (include#.forms) do (
set/a C+=1 
set In!C!=%%e 
) 

Aber ich will eine andere for-Schleife verwenden, um es zu lesen:

for /l %%N in (1 1 !C!) do (
for /f "delims=: tokens=*" %%a in (!In!C!!) do..... 

Aber wie Würdest du die spezielle Variable eines Arrays und eine Variable nehmen, die du bereits in einem Array benutzt hast? Weil,! In !! C! wird herauskommen! In! und C! nicht zusammengeführt, aber getrennt.

+1

Diese For/f-Schleife sollte '! In %% N!' Anstelle von '! In !! C!' Aufrufen, es sei denn, Sie möchten dasselbe Element immer wieder im Array lesen. – SomethingDark

+0

Ja, das könnte eine Möglichkeit sein, eine Variable nicht zu verwenden, aber wie würde ich sie in eine IF-Anweisung schreiben. Wie: wenn '"! In !! C! "==" .... "' aber '! In !! C!' Wird zu In + C nicht! In1! oder! In2 !. –

Antwort

0

Ich fand dies selbst lol. Um Variablen ab zu fusionieren:

set 1:1=Hello 
set array_row=1 
set array_id=1 

Wir wollen !%array_row%:%arrow_id%! Echo, aber das funktioniert nicht. Wir werden eine für Anweisung:

for /f %%x in ("!array_row!") do for /f %%y in ("!array_id!") do echo !%%x:%%y! 

%% Variablen werden zuerst ausgeführt, so dass wir das verwenden. Die vorher ausgegebene Ausgabe ist !1:1!.

Der Grund, warum ich dies möge, weil ich mit Arrays ex zu tun habe:

set file1_name=Text.txt 
set file2_name=Run.bat 

ich, wenn die Benutzereingabe entspricht eine Datei (sie nicht wirklich Dateien) zu laufen vergleichen wollte. Dafür werden wir (Echo ihnen)

for /L %%C in (1 1 2) do echo !file%%C_name! 

Da es ein Array ist wir verwenden für/L (Loop) und nicht eine für/f (lesen). Beide verwenden eine %% Variable.

Verwandte Themen