윈도우 명령줄(cmd.exe) 에서 for 루프 내에서 문자열을 set 으로 붙이려고 했으나 동작하지 않고 %XX% 가 미리 처리되어 마지막 set 만 처리되었다.

 

[코드]

 

for /f %%a ('dir /a /b') do set XX=%XX% %%a 

 

[실제 동작]

 

for /f %%a ('dir /a /b') do set XX= %%a

 

검색해보니 Delayed Expansion 을 enable 해서 처리하거나 goto 문을 이용하는 방법이 있었다. Delayed Expansion 을 enable 하는 것이 더 깔끔한 것 같다.

 

@echo off
setlocal enabledelayedexpansion
set myvar=the list:
for /r %%i In (*.sql) DO set myvar=!myvar! %%i,
echo %myvar%

 

출처 : http://stackoverflow.com/questions/2027070/how-to-concatenate-strings-in-a-windows-batch-file

728x90

+ Recent posts