2009-05-13 12 views
29

ho bisogno di fare un .bat per DOS che effettuare le seguenti operazioni:variabili concatenare

set ROOT = c:\programas\ 
set SRC_ROOT = (I want to put the ROOT Here)System\Source 

così dopo aver definito ROOT voglio avere SRC_ROOT = c: \ programas \ System \ Source

Come può Lo faccio?

risposta

50

set root = c: \ programmi set SRC_ROOT =% ROOT% \ System \ Source

A proposito, qual è il significato della | dopo il ROOT? Un mispelling?

Gregoire

EDIT: senza spazi

set ROOT=c:\programs 
set SRC_ROOT=%ROOT%\System\Source 
+0

sì ... è un mispelling ... Quello che hai scritto è stata la prima cosa che ho provato ... Non funziona ... se faccio eco a SRC_ROOT solo \ system | source appare – UcanDoIt

+0

infatti gli spazi tra i = non sono necessari, prova: imposta ROOT = c: \ programmi imposta SRC_ROOT =% ROOT% \ System \ Source – podosta

+0

non funziona: S – UcanDoIt

6

Nota che se sono necessari spazi poi le virgolette sono necessarie alla definizione e devono essere tagliate, mentre la concatenazione:

rem The retail files set 
set FILES_SET="(*.exe *.dll" 

rem The debug extras files set 
set DEBUG_EXTRA=" *.pdb" 

rem Build the DEBUG set without any 
set FILES_SET=%FILES_SET:~1,-1%%DEBUG_EXTRA:~1,-1% 

rem Append the closing bracket 
set FILES_SET=%FILES_SET%) 

echo %FILES_SET% 

Acclamazioni ...