알짜게시판

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

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

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


콘솔 환경 설정

스크립트 시작 시 콘솔 코드 페이지를 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%"

로그인 후 댓글내용을 입력해주세요

제목 글쓴이 조회 날짜
기타 Midjourney, DALL·E, ChatGPT에서 Y2K 파스텔 UI… 350 26-07-24
리눅스 Cloudflare R2 자동 업로드 구성하기. 특정 폴더에 파일만 넣으… 316 26-07-23
워드프레스 워드프레스 7.0 관리자 링크 색상 변경 후 이전 색상으로 되돌리는 방법 1,015 26-06-04
워드프레스 캐시 환경에서 AJAX 댓글(코멘트) 분리로 서버 응답시간 속도 향상 1,079 26-04-29
리눅스 아파치 일반 계정 파일 접근 권한 설정과 mod-ruid2 적용 방법 1,182 26-04-26
델파이 Delphi IDE 메인 폼 안열림 dproj 설정으로 해결 1,084 26-04-26
개발팁 VSCode 한국어 설정법, Configure Display Langua… 1,663 26-04-24
기타 RustDesk 자체 서버 구축으로 공용 서버 로그인 문제 해결 2,349 26-04-16
리눅스 Dante SOCKS5 프록시 서버 구축 및 설정 986 26-04-10
윈도우 윈도우 실행파일(exe) 서비스 등록 자동화 쉽게 하는 방법 - NSSM 1,263 26-04-05
기타 CLIProxyAPI Windows 설치 가이드 3,444 26-04-04
워드프레스 그누보드7 데이터를 WordPress WXR로 변환하기 1,048 26-04-01
기타 Ollama 설치 경로 C드라이브 고정 문제 해결 및 드라이브 변경 방법 1,500 26-03-31
개발팁 Apache Access Log 기반 도메인별 방문자 카운터 구현 949 26-03-31
윈도우 ZImage AI 이미지 생성 환경 구축 방법 1,159 26-03-26
윈도우 파일 복사 후 실행 배치파일 - 에러 감지 포함 1,190 26-03-10
개발팁 네이버 검색 Open API 1,696 26-02-10
개발팁 네이버 검색광고 키워드 도구 API 검색 2,527 26-02-10
개발팁 MariaDB column_stats 테이블 오류 해결 방법 1,680 25-12-06
개발팁 PHP-FPM 에러 로그 실시간 모니터링 1,482 25-12-03
윈도우 윈도우11 업데이트 후 네트워크 드라이브 접근 불가 문제 해결 방법 3,077 25-11-24
개발팁 다국어 번역 함수 구현 방법 3,999 25-11-08
워드프레스 "치명적인 오류가 발생했습니다" 디버깅 가이드 14,746 25-10-31
리눅스 Apache 웹 로그 분석하기 – awk와 GoAccess 활용 19,314 25-10-28
길호넷 칼무리 - 외부 명령으로 캡처 자동화하기 1 41,283 25-10-14
윈도우 윈도11 강제업데이트 피하고 윈도10 계속 쓰기 42,425 25-10-12
리눅스 PHP 파일 업로드 용량 늘리기 57,406 25-10-03
개발팁 애드센스 충돌 문제 해결하기 75,362 25-09-20
파이썬 Python Playwright로 Edge 브라우저 제어하기 77,626 25-09-12
델파이 TDirectory.Delete 대신 CMD 으로 폴더 삭제 75,798 25-09-10

사주클럽망치와삽결혼의신강남언니야클라우드AI