2012-02-16 15 views
6

Potrzebuję utworzyć pojedynczą zmienną łańcuchową, łącząc wiele ciągów. Końcowy ciąg, którego potrzebuję, jest następujący:Plik .bat do utworzenia złożonej zmiennej łańcuchowej ze znakami specjalnymi

<Workspace name="RealTimeRiskUSD_UA" path="C:\workspace" IsAdmin="false" /> 

Oto, co próbowałem.

echo off 
set path1="<Workspace " 
set name="name="RealTimeRiskUSD_UA"" 
set path2="path="C:\workspace" IsAdmin="false" />" 
set fullpath=%path1%%name%%path2% 
echo %path1% 
echo %name% 
echo %path2% 
echo %fullpath% 

Próbowałem też za pomocą poniższego linku, aby usunąć podwójne cytaty z każdej struny, ale nie działa
http://ss64.com/nt/syntax-esc.html

Odpowiedz

9

Można użyć rozszerzonej składni SET. ustaw "var = content".

Powoduje wyłączenie znaków specjalnych, ale cudzysłowy nie są częścią ciągu.

echo off 
Setlocal EnableDelayedExpansion 
set "path1=<Workspace " 
set "name=name="RealTimeRiskUSD_UA"" 
set "path2=path="C:\workspace" IsAdmin="false" />" 
set "fullpath=%path1%%name%%path2%" 
echo !fullpath! 
+0

Witam, bardzo dziękuję za szybką odpowiedź! Proszę, powiedz mi, jaka jest różnica między! Fullpath! i% fullpath% w tym przypadku? – NewQueries

+1

Jest to opóźniona ekspansja, zaletą opóźnionego rozszerzenia jest to, że można używać znaków specjalnych bez żadnych efektów ubocznych – jeb

+0

Oh ok, Dzięki jeb. – NewQueries

Powiązane problemy