- 도스(dos) 배치 파일(일괄처리 파일) 작성법
https://en.wikibooks.org/wiki/Windows_Batch_Scripting
* 입력 인자(Argument)
%0 = 배치파일 자신, %1=1번째 인자...
%~1 = 빈칸을 포함한 문자열을 따옴표로 묶어서 입력받음(따옴표는 제거됨)
%* = 모든 입력 인자
* 폴더 경로
%dp0 = 현재 bat 파일이 위치한 폴더 경로
echo %dp0파일 = 현재경로\파일
* 변수 설정
SET var1=변수 값
- 숫자 계산
set /a var1=%a%+1
* 특별값
%CD% : 현재 폴더 이름
%TIME% : 시간
//===========
* 문자열 처리
set a=abcd
echo %a:~1,2%
결과 : bc
echo %a:~-2%
결과: cd
- 확장자 추출
//=====================
* 한줄에 여러 명령
http://www.robvanderwoude.com/condexec.php
& : 한 줄에 여러 명령
&& : 이전 명령의 errorlevel이 '0' 이면 다음 명령실행
|| : 이전 명령의 errorlevel이 '0' 이 아니면 다음 명령실행
//===========
* CALL : 외부 배치파일이나 내부 함수 실행
@echo off & setlocal
set s=AAA BBB CCC DDD EEE FFF
call :sub1 %s%
exit /b
:sub1
if "%1"=="" exit /b
echo %1
shift
goto :sub1
* START : exe 파일 실행
start /wait notepad.exe : 이전 실행된 프로그램의 종료를 기다림
* SHIFT : 입력 인자를 앞으로 민다
* EXIT
exit /b : 현재 배치파일만 끝냄
* SETLOCAL : 환경변수를 변경한 경우 현재 배치파일에서만 영향
* PUSHD : 경로를 저장
pushd c:\user
pushd "%~dp0" // 현재 배치파일 위치를 저장
* POPD : 경로 복원
- PUSHD로 저장된 경로로 이동
//===========
* GOTO
rem 따옴표 필요 주의
if "%~1"=="" goto :end1
.....
:end1
//===========
* IF
- if 문 블록 ( ) 안에 if 를 쓰면 안된다. 무조건 실행됨
- 문자열 비교시 양쪽에 모두 따옴표 권장
- 비교인자가 비정의 상태( not defined) 상태이면 에러, %1 등에서 주의
if not "%4" == "30" echo not 30
- 숫자 비교시 따옴표 해제
if %4 geq 30 echo greater than 30
- 파일 존재 점검
IF NOT EXIST '파일' GOTO NOWINDIR
* IF ELSE
- ELSE IF 문이 없음 , 다음의 방식으로 구현
IF "%1" == "" (
set option=2
) ELSE (
IF "%1" == "1" (
set option=
) ELSE (
set option=%1
)
)
중요!! - ELSE 앞뒤로 빈칸이 있어야 함
//============
* FOR
- 폴더 파일 리스팅
for /r %%i in (*) do (
@echo %%~ni
@echo %%~xi
)
/r : 하위폴더 포함
/d : 폴더
//===================
* 키보드에서 문자열 입력 받기
@echo off
SET /P confirm=Please enter yes :
if "%confirm%" NEQ "yes" (
echo worng answer
exit /b
)
echo END
//------------------
EQU | equal to
NEQ | not equal to
LSS | less than
LEQ | less than or equal to
GTR | greater than
GEQ | greater than or equal to
//===========
%~I Expands %I which removes any surrounding
quotation marks ("").
%~fI Expands %I to a fully qualified path name.
%~dI Expands %I to a drive letter only.
%~pI Expands %I to a path only.
%~nI Expands %I to a file name only.
%~xI Expands %I to a file extension only.
%~sI Expands path to contain short names only.
%~aI Expands %I to the file attributes of file.
%~tI Expands %I to the date and time of file.
%~zI Expands %I to the size of file.
%~$PATH:I Searches the directories listed in the PATH environment
//===============
//참고
https://en.wikibooks.org/wiki/Windows_Batch_Scripting
'Tips' 카테고리의 다른 글
유튜브 feed rss 주소 알아내기 (0) | 2017.09.26 |
---|---|
정규식 사용법 (0) | 2017.09.11 |
브라우저 배경색 글자색 바꾸기 (다크모드) (적용) (0) | 2017.08.02 |
현대차 경보음 해제 하는 방법 (0) | 2017.06.09 |
[Windows 10 Tip] 이전 실행 명령어 사용기록 보이게 하는 방법 (6) | 2017.05.15 |