Windows Batch file 만들기

자주 쓰이는 Batch shell 키워드 리스트:
- @ECHO off
- title
- set
- @REM
- %[SOMEVAR]%
- 2>&1
- start
- move
- 각종 strip
@ECHO off
명령어의 복창을 방지한다. 배치파일 내에 여러가지 명령어들을 저장해 두었을 시, 그 명령어들의 결과만을 출력한다.
title
배치파일이 실행되는 cmd 창의 제목을 지정한다.
@REM
주석 처리. C계열 언어의 '//'나 파이썬의 '#'에 준함
set
변수 설정. ex) set VAR=15
%[SOMEVAR]%
환경변수 또는 현재 batch파일 내에서 지정한 변수 불러오기
2>&1
2는 stderr, 1은 stdout이다. standard error를 standard output으로 돌리는 것.
start
실행파일 실행. 자주쓰는 옵션 \b: 새 Window에서 실행하지 않고 현재 Window에서 바로 실행
move
파일 이동 또는 파일이름 변경 move [원본] [변경후]
각종 strip
@ECHO OFF
set PREFIX=%DATE%
move log.txt log%PREFIX%.txt
:~[number] [number]~끝까지를 지정한다. 이미 생성해 놓은 log.txt파일의 이름을 변경하는 것으로 실험하였다.
@ECHO OFF
set PREFIX=%DATE%
@REM move log.txt log%PREFIX%.txt
set PREFIX2=%PREFIX:~2%
move log%PREFIX%.txt log%PREFIX2%.txt
"2019-11-18"이라는 문자열의 index가 2인 자리부터 끝까지 지정되어 19-11-18이 된 것을 볼 수 있다.
:[]= []자리에 해당하는 문자열을 잘라낸다.
@ECHO OFF
set PREFIX=%DATE%
@REM move log.txt log%PREFIX%.txt
set PREFIX2=%PREFIX:~2%
@REM move log%PREFIX%.txt log%PREFIX2%.txt
set PREFIX3=%PREFIX2:-=%
move log%PREFIX2%.txt log%PREFIX3%.txt
"19-11-18"에서 -가 사라진 191118이 된 것을 볼 수 있다.
기타 cmd창 커스터마이즈
- color
- mode con cols=[] lines=[]
color
color [1][2] [1]은 배경색, [2]는 글씨색이다.
Code | Color |
---|---|
0 | Black |
8 | Gray |
1 | Blue |
9 | Light Blue |
2 | Green |
A | Light Green |
3 | Aqua |
B | Light Aqua |
4 | Red |
C | Light Red |
5 | Purple |
D | Light Purple |
6 | Yellow |
E | Light Yellow |
7 | White |
F | Bright White |
mode con cols=[] lines=[]
창 크기를 조절하는 명령어이다. mode con cols=[가로크기] lines=[세로크기]
참고한 곳: https://ss64.com/nt/
자주 쓰는 조합
주기적인 로그삭제
forfiles /p "[path]" /s /m [words to search] /d -[date] /c "cmd /c del @path"
Option | description |
---|---|
/p | path |
/s | search including subdirectories |
/m | search specific words |
/d | date |
/c | command |
ex)
forfiles /p "C:\Temp\" /s /m *.log /d -10 /c "cmd /c del @path"
의미: C:\Temp부터 하위 디렉토리 전부를 대상으로, 파일명이 *.log이며 생성된지 10일이 넘은 파일들을 모두 삭제한다.