2010-07-20 17 views
14

Se sì Come?I file batch supportano variabili multiline

Sì, i file batch sono zoppo, ma non posso usare PowerShell e non mi sento di scrivere una vera e propria app per fare questo compito semplice ....

modificare

What i voglio qualcosa sulle linee di

set var="this is a 
multi 
line 
string " 

risposta

14

Oppure è possibile creare un carattere "reale" di nuova riga.

setlocal enableDelayedExpansion 
set NL=^ 


rem two empty line required 
echo first line !NL! second line 
set multi=Line1!NL!Line2 
set multi=!multi!!NL!Line3 
echo !Multi! 

Con questa variante la nuova riga è un carattere "normale" nella stringa, quindi le variabili agire normalmente e si possono assegnare un'altra variabile, ciò non è possibile con il &echo. trick (che è utile per semplice compiti).

+0

Questo è ciò che volevo in origine. Grazie. –

11

Va bene?

@echo off 
set var=kur 
set var2=kur2 
echo var is = "%var%" and var2 is = %var2% 

modificare
è questo che vuoi dire?

@echo off 
set nl=^& echo. 
echo this%nl%is%nl%multiline%nl%string 
+0

Opere! -------- –

+0

Grazie perfetto. –

+0

+1 Wow ... come hai immaginato che fosse questo che intendeva fare ?? –

1

E ora - senza comandi ausiliari SET:

echo this is a & echo multi & echo line & echo string 
2
SET myFlags=^
    a^
    b^
    c 
+0

Non ha funzionato per me con 'echo% myFlags%' o 'echo! MyFlags!'. –

1

Questa è una domanda piuttosto vecchio, ma ho messo insieme un ibrido delle soluzioni da @Fabricio e @jeb che sia ha funzionato correttamente e ha aggiunto una certa leggibilità:

setlocal enableDelayedExpansion 
set NL=^ 


rem two empty line required 
set var=this is a !NL!^
multi !NL!^
line !NL!^
string !NL! 

echo !var! 
Problemi correlati