파일 복사 후 실행 배치파일 - 에러 감지 포함

이 배치 스크립트는 네트워크 경로에 있는 실행 파일을 현재 디렉터리로 복사한 뒤 실행하는 간단한 실행 보조 도구이다.

복사 과정에서 오류가 발생하면 콘솔에 오류 메시지를 출력하고 프로그램 실행을 중단한다.


콘솔 환경 설정

스크립트 시작 시 콘솔 코드 페이지를 UTF-8로 설정한다.

이는 콘솔 출력에서 사용되는 특수 문자와 박스 문자가 깨지지 않도록 하기 위한 설정이다.

또한 ANSI 이스케이프 코드를 사용하기 위해 ESC 문자를 변수에 저장한다.
이 값은 이후 콘솔 색상과 스타일을 제어하는 데 사용된다.


파일 경로 설정

스크립트에서는 환경 변수를 사용해 다음 정보를 정의한다.

  • 실행 파일이 위치한 원본 경로
  • 복사할 실행 파일 이름
  • 복사 후 사용할 파일 이름

이 방식은 경로나 파일 이름을 수정할 때 스크립트 전체를 수정하지 않아도 되는 장점이 있다.


파일 복사

지정된 경로에 있는 실행 파일을 현재 디렉터리로 복사한다.

복사 과정에서 발생하는 기본 출력 메시지는 모두 숨겨 콘솔 출력이 나타나지 않도록 처리되어 있다.


오류 처리

파일 복사에 실패하면 콘솔에 오류 메시지를 출력한다.

이 메시지는 ANSI 이스케이프 코드를 이용해 색상과 박스 형태로 표시되며, 사용자에게 복사 실패 상황을 안내한다.

이후 키 입력을 기다린 뒤 스크립트가 종료된다.


프로그램 실행

파일 복사가 정상적으로 완료되면 복사된 실행 파일을 즉시 실행한다.

이 과정에서 실행 파일은 새로운 프로세스로 시작된다.

@echo off
chcp 65001 >nul
for /f %%a in ('echo prompt $E^| cmd') do set "ESC=%%a"

set SRC_PATH=N:\Release
set SRC_FILE=WBManager.exe
set DST_FILE=WBManager.exe

copy "%SRC_PATH%\%SRC_FILE%" "%DST_FILE%" >nul 2>&1 || (
    echo.
    echo.
    echo  %ESC%[90m╔══════════════════════════════════════════════════════════╗%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m                                                          %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m   %ESC%[101;97m                                                    %ESC%[0m   %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m   %ESC%[101;97m   ██████╗ ██████╗ ██████╗  ██████╗ ██████╗         %ESC%[0m   %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m   %ESC%[101;97m   ██╔══╝  ██╔══██╗██╔══██╗██╔═══██╗██╔══██╗        %ESC%[0m   %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m   %ESC%[101;97m   █████╗  ██████╔╝██████╔╝██║   ██║██████╔╝        %ESC%[0m   %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m   %ESC%[101;97m   ██╔══╝  ██╔══██╗██╔══██╗██║   ██║██╔══██╗        %ESC%[0m   %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m   %ESC%[101;97m   ███████╗██║  ██║██║  ██║╚██████╔╝██║  ██║        %ESC%[0m   %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m   %ESC%[101;97m   ╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═╝        %ESC%[0m   %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m   %ESC%[101;97m                                                    %ESC%[0m   %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m                                                          %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m╠══════════════════════════════════════════════════════════╣%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m                                                          %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m   %ESC%[1;97m FAILED TO COPY FILE%ESC%[0m                                   %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m                                                          %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m   %ESC%[2;37m Press any key to exit ...%ESC%[0m                             %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m║%ESC%[0m                                                          %ESC%[90m║%ESC%[0m
    echo  %ESC%[90m╚══════════════════════════════════════════════════════════╝%ESC%[0m
    echo.
    pause >nul
    exit /b
)

start "" "%DST_FILE%"

Comments

Tips & Tech

Windows 윈도우 실행파일(exe) 서비스 등록 자동화 쉽게 하는 방…
Windows ZImage AI 이미지 생성 환경 구축 방법
Views Windows 파일 복사 후 실행 배치파일 - 에러 감지 포함
Windows 윈도우11 업데이트 후 네트워크 드라이브 접근 불가 문…
Windows 윈도11 강제업데이트 피하고 윈도10 계속 쓰기
Windows Chrome 및 Edge를 TLS 1.2 모드로 실행
Windows 브라우저 환경설정 추출
Windows WSH script registration is not valid.
Windows 네트워크 탐지
Windows TLS 연결 끊김 해결 방법 - Kyber 비활성화
Windows WinDivert 사용중인 어플리케이션 검색
Windows 아이폰 벨소리 쉽게 추가하기
Windows C:\Windows\Installer 폴더 다른 드라이브로 옮기기
Windows 작업 표시줄 (기타 시스템 트레이 아이콘) 제거 프로그…
Windows Windows에 Rust 설치하기
Windows 파일 내용 검색
Windows node.js 와 npm 업데이트(업그레이드)
Windows 윈도우11 시작 메뉴 위치 변경(가운데, 왼쪽)
Windows IPv6 켜기, 끄기
Windows 윈도우 서버 2016 IIS 중지
Windows 설치하려고 하는 앱이 Microsoft에서 확인된 앱이 아닙…
Windows WMI 복구하기
Windows WinHTTP 사용에서 12175 에러 발생시
Windows 원격 데스크탑 접속 기록 삭제하기
Windows 네트워크 드라이브 커맨드 명령으로 연결하기
Windows VS Code 설치방법
Windows 레지스트리 변경값 추적하는 프로그램
Windows 크롬 알림창 해제하기
Windows Go 언어 설치하기