Windows 배치파일에서 아래의 코드를 깔끔하게 정리하려고 합니다.
이것저것 해 봤는데 도저히 안되네요. 다른 언어 같으면 배열에 집어넣고 FOR로 돌려주면 끝인데, 이놈의 배치파일은 하면 할수록 어렵습니다.
---------------------------------------------
REM SFT[x](배열 비슷하게 선언)
SET SFT[1]=C:\원본폴더1
SET SFT[2]=D:\원본폴더2
SET SFT[3]=D:\원본폴더3
REM DFT(백업본이 저장될 폴더)
SET DFT=D:\Backup
REM 여기이하를 루프로 돌리고 싶어서 질문합니다.
IF EXIST %SFT[1]% xcopy %SFT[1]%\*.* %DFT%\DB_Serve\r%SFT[1]::\=_%\ /S/D/Y/E
IF EXIST %SFT[2]% xcopy %SFT[1]%\*.* %DFT%\DB_Server\%SFT[2]::\=_%\ /S/D/Y/E
IF EXIST %SFT[3]% xcopy %SFT[1]%\*.* %DFT%\DB_Server\%SFT[1]::\=_%\ /S/D/Y/E
---------------------------------------------
도움을 부탁드립니다.. ^.^;;
..나는 세상의 중심..
¹èÄ¡ÆÄÀÏÀÇ FOR¹®ÀÌ Á¦°¡ »ý°¢ÇÏ´Â°Í Ã³·³ µ¹¾Æ°¡Áö¸¦ ¾Ê´õ¶ó±¸¿ä.
FOR·Î´Â ´äÀÌ ¾È³ª¿Í¼, IF¿Í GOTO¸¦ ÀûÀýÈ÷ ¼¯¾î¼ »ç¿ëÇß½À´Ï´Ù.
SETLOCAL EnableDelayedExpansion
REM SFT[x](¹è¿ ºñ½ÁÇÏ°Ô ¼±¾ð)
SET SFT[1]=C:\TEST\ORG1
SET SFT[2]=C:\TEST\ORG2
SET SFT[3]=C:\TEST\ORG3
REM À§ SFT¹è¿ÀÇ ·çÇÁ ½ÃÀÛ°ú ³¡ Á¤ÀÇ
SET START=1
SET END=3
REM DFT(¹é¾÷º»ÀÌ ÀúÀåµÉ Æú´õ)
SET DFT=C:\TEST\BACKUP
FOR /L %%T IN (%START%,1,%END%) DO (
IF EXIST !SFT[%%T]! xcopy !SFT[%%T]!\*.* %DFT%\DB_Server\!SFT[%%T]::\=_!\ /S/D/Y/E
)
ã¾Æº¸´Ï ÀÌ·± ¹æ½ÄÀ¸·Îµµ µ¹±ä µµ³×¿ä..
FOR¹® ¾È¿¡¼ !SFT[%%T]! ÀÌ°Ô ¿øÇϴ´ë·Î Ç¥ÃâÀÌ ¾ÈµÇ¾î¼ ÇÏ·çÁ¾ÀÏ ÇÏ´Ù°¡ FOR¹®À» Æ÷±âÇÑ °Ì´Ï´Ù.
À§¿¡ ¾ð±ÞÇÑ´ë·Î IF¿Í GOTO·Î ÇØ°á Çß½À´Ï´Ù.
¶È°°Àº !SFT[%NO%]! Àε¥, FOR¹® ¾È¿¡¼ÀÇ °ª°ú ¹Û¿¡¼ÀÇ °ªÀÌ ´Ù¸¨´Ï´Ù. Ȳ´ç.
»ç½Ç, ÇÏ´ÙÇÏ´Ù ¾ÈµÇ¸é ±×³É ÆÄÀ̾´À¸·Î ¸¸µé·Á°í Çߴµ¥ Àß ÇØ°áµÇ¾î¼ ´ÙÇàÀÔ´Ï´Ù. ¤¾¤¾
±×.·±.µ¥ ½ÇÁ¦·Î´Â Àú°Ô ¾ÈµË´Ï´Ù. ±×·¡¼ Àúµµ ¹Ý³ªÀýÀ» ÇãºñÇß´ø°Å±¸¿ä.
FOR ¹® ¾È¿¡¼ ECHOµµ ¿¡·¯°¡ ³³´Ï´Ù.
¾ÆÁÖ È²´çÇÏÁÒ...
¹¹... ¿©·¯°¡Áö »ðÁúÇÑ ´öºÐ¿¡ ¹è¿ ºñ½ÁÇÏ°Ô »ç¿ëÇÏ´Â ¹æ¹ýÀ» Å͵æÇؼ ¿øÇÏ´Â °á°ú¹°Àº ¾ò¾ú½À´Ï´Ù.
°¨»çÇÕ´Ï´Ù.