IT/IT

BAT 파일중 가장 유용할 만한 자동화 작업 3가지

it-Fix 2024. 10. 28. 17:33

BAT 파일을 이용하면 적당한 윈도우즈용 프로그램이 없을 경우 간단하게 자작하여 해당 작업을 손쉽게 진행할 수 있다는 것이 BAT 파일의 매력인 것 같습니다. 아래에서는 주관적이지만 가장 유용할 것 같은 BAT 파일의 사용례 3가지를 선별해 보았습니다.

 

1. 폴더내부의 모든 파일 백업하기

BAT 파일을 이용해 폴더 내부의 모든 파일을 특정 폴더에 백업하는 것으로 백업이므로 기존 폴더의 내용은 그대로 남아있고 백업 폴더에 동일하게 파일들이 생성되게 됩니다.

이러한 기능을 구현하기 위한 BAT 파일의 내용은 아래와 같습니다. 메모장에 붙여 넣기 한 다음 BAT 확장자로 저장하시면 됩니다.

 

@echo off
set /p source=원본 폴더 경로를 입력하세요: 
set /p destination=백업 폴더 경로를 입력하세요: 

echo.
echo 원본 폴더: %source%
echo 백업 폴더: %destination%
set /p confirm=계속 진행하시겠습니까? (Y/N): 

if /I "%confirm%"=="Y" (
    xcopy "%source%" "%destination%" /E /I /Y
    echo 백업 완료!
) else (
    echo 백업이 취소되었습니다.
)

pause

 

 

드라이브 간의 폴더 백업의 경우 드라이브명+콜론(:)+돈표시(\) 키보드를 쓴 다음 폴더명을 적어주면 됩니다.

저는 C드라이브에 임의의 폴더 1을 생성해 몇개의 파일을 넣고 이를 D드라이브의 빈폴더 2에 백업하는 작업을 해 보았으며, 잘 작동하였습니다.

 

 

 

 

2. 시스템 정보의 화면 출력 및 문서 출력

현재 사용중인 시스템의 시스템 정보를 화면에 출력해 주고 사용자가 원할 경우에 텍스트 문서로 저장해 주는 내용의 BAT 파일입니다. 이 역시 시스템 정보중 일정한 내용을 문서화할 필요가 있을 경우에 유용할 것으로 보입니다.

아래의 코드를 메모장에 붙여 넣기 한 다음 역시 확장자 BAT로 저장하면 되며, 시스템 정보를 화면에 출력한 후 사용자가 Y를 입력하면 해당 정보를 텍스트 파일로 저장하고, N을 입력하면 저장하지 않겠다는 메시지를 출력합니다.

 

@echo off
systeminfo

set /p save=시스템 정보를 C:\시스템정보.txt에 저장하시겠습니까? (Y/N): 

if /I "%save%"=="Y" (
    systeminfo > C:\시스템정보.txt
    echo 시스템 정보가 C:\시스템정보.txt에 저장되었습니다.
) else (
    echo 시스템 정보가 저장되지 않았습니다.
)

pause

 

 

아래는 테스트해 보았을때 저장이 거부되는 경우의 이미지이며, 이러한 경우에는 해당 BAT 파일을 마우스 우클릭 후 관리자 권한으로 실행하기를 클릭해 주면 잘 저장됩니다.

 

 

 

아래의 이미지는 관리자 권한으로 BAT 파일을 실행시켰을 경우 저장 거부없이 잘 저장되는 모습입니다.

 

 

 

 

3. 특정 프로그램의 자동 실행 또는 지연 실행

BAT 파일을 이용하면 사용자가 원하는 프로그램을 즉시 실행시키거나, 일정한 시간 딜레이를 주어서 실행하도록 명령할 수도 있습니다. 

 

- 기본 구문 : 즉시 실행

 

@echo off
start "" "C:\프로그램경로\프로그램.exe"
echo 프로그램이 실행되었습니다.
pause

 

 

 

- 사용자가 입력한 초 이후에 실행

 

@echo off
set /p delay="프로그램을 실행할 시간을 초 단위로 입력하세요: "
echo %delay% 초 후에 프로그램이 실행됩니다.
timeout /t %delay% /nobreak >nul
start "" "C:\프로그램경로\프로그램.exe"
echo 프로그램이 실행되었습니다.
pause

 

 

 

- 사용자가 입력한 분 이후에 실행

 

@echo off
set /p delay="프로그램을 실행할 시간을 분 단위로 입력하세요: "
set /a seconds=delay*60
echo %delay% 분 후에 프로그램이 실행됩니다.
timeout /t %seconds% /nobreak >nul
start "" "C:\프로그램경로\프로그램.exe"
echo 프로그램이 실행되었습니다.
pause

 

 

 

- 사용자가 입력한 시 이후에 실행

 

@echo off
set /p delay="프로그램을 실행할 시간을 시간 단위로 입력하세요: "
set /a seconds=delay*3600
echo %delay% 시간 후에 프로그램이 실행됩니다.
timeout /t %seconds% /nobreak >nul
start "" "C:\프로그램경로\프로그램.exe"
echo 프로그램이 실행되었습니다.
pause

 

 

사용자가 입력한 분을 초로 변환하기 위해 `set /a seconds=delay*60`을 사용했으며, 사용자가 입력한 시간을 초로 변환하기 위해서는 `set /a seconds=delay*3600`을 사용하였습니다.

작동 테스트를 위하여 사용자가 입력한 초 이후에 그림판이 실행되는 BAT 파일을 만들어 보았으며 스크립트는 아래와 같습니다.

 

@echo off
set /p delay="그림판을 실행할 시간을 초 단위로 입력하세요: "
echo %delay% 초 후에 프로그램이 실행됩니다.
timeout /t %delay% /nobreak >nul
start "" "C:\Users\user\AppData\Local\Microsoft\WindowsApps\mspaint.exe"
echo 프로그램이 실행되었습니다.
pause

 

주의할 것은 그림판의 경로로 설정된 C:\Users\user\AppData\Local\Microsoft\WindowsApps\mspaint.exe 위치는 현재 기준 윈도우 11에서의 그림판 위치이므로 윈도우 버전이 다를 경우에는 다른 위치에 존재할 수도 있습니다.

테스트 결과 잘 작동합니다.

 

 

 

이상으로 가장 유용할 만한 BAT 파일 사용 예제 3가지를 살펴 보았습니다.