728x90
배치 파일(Batch File)이란?
- 컴퓨터 명령어를 포함하는 텍스트 파일로, 컴퓨터에게 특정 명령을 실행하도록 지시하는 역할을 한다.
- 주로 Windows 운영 체제에서 사용되며 파일 확장자는 .bat 또는 .cmd
Batch파일 활용 - 오늘 날짜에 해당하는 파일만 옮기기
파일 이름에 오늘 날짜(YYYY-MM-DD 형식)가 포함되어 있는 파일만 A 디렉터리에서 B 디렉터리로 이동시키기
@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion
:: 오늘 날짜를 YYYY-MM-DD 형식으로 설정
for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value"') do set datetime=%%i
set "today=%datetime:~0,4%-%datetime:~4,2%-%datetime:~6,2%"
:: 소스 및 타겟 디렉토리 설정
set "SOURCE_DIR=C:\Users\user\Desktop\임시\Backup\A"
set "TARGET_DIR=C:\Users\user\Desktop\임시\Backup\B"
:: 오늘 날짜가 포함된 파일만 이동
for %%i in ("%SOURCE_DIR%\*") do (
set "filename=%%~nxi"
echo !filename! | findstr /c:"%today%" >nul
if !errorlevel! == 0 (
move "%%i" "%TARGET_DIR%"
)
)
endlocal
- @echo off : 명령 프롬프트의 명령이 실행될 때 해당 명령이 표시되지 않도록 한다.
- chcp 65001 > nul : UTF-8로 변경하여 스크립트에서 유니코드 문자를 제대로 처리할 수 있도록 한다. (디렉터리 경로에 한글이 포함되었을 경우 인식하기 위함)
- setlocal enabledelayedexpansion : 일반적으로 배치 스크립트에서 변수가 설정되면 해당 라인 전체에서 적용된다. 그러나 enabledelayedexpansion을 사용하면 각 라인이 실행될 때 변수가 설정된다.
- for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value"') do set datetime=%%i : 현재 날짜와 시간을 가져와 datetime 변수에 저장한다.
- set "today=%datetime:~0,4%-%datetime:~4,2%-%datetime:~6,2%" : 오늘 날짜를 YYYY-MM-DD 형식으로 지정한다.
- set <변수명> : 환경 변수 설정, 복사될 원본 디렉터리와 복사할 대상 디렉터리를 설정해 준다.
- for %%i in ("%SOURCE_DIR%\*") do ( ... : 현재 파일의 이름을 filename 변수에 저장하고, 파일명에 오늘 날짜가 포함되어 있으면 타겟 디렉터리로 이동시킨다.
- endlocal : setlocal 명령어에 의해 시작된 지역 변수 영역을 종료한다.
참고)
[Windows] 배치 파일 & 작업 스케줄러 방법 (tistory.com)
[Windows] 배치 파일 & 작업 스케줄러 방법
배치 파일(Batch File)이란 ? 컴퓨터 명령어를 포함하는 텍스트 파일로, 컴퓨터에게 특정 명령을 실행하도록 지시하는 역할을 한다. 주로 Windows 운영 체제에서 사용되며 파일 확장자는 .bat 또는 .cmd
yeit.tistory.com
728x90
'OS > Windows' 카테고리의 다른 글
[JMeter] Windows 서버에서 JMeter CLI 실행 및 리포트 출력 방법 (0) | 2025.05.20 |
---|---|
[Windows] 윈도우 OS 기본 명령어 총정리_ 인프라 관리의 기초 (0) | 2024.08.17 |
[Windows][업무자동화] Batch파일 활용 - 파일 복사하기, 덮어쓰기 (0) | 2024.05.25 |
[Windows] 배치 파일 & 작업 스케줄러 방법 (0) | 2024.03.24 |
[Windows] wget 설치 방법 (0) | 2024.03.16 |