출처 : http://blog.hansune.com/118
참고 :
http://delicious.com/mwultong/batch?page=1
울트라에디터에 배치파일 문법 강조 파일 추가하는 법
http://mwultong.blogspot.com/2007/07/bat-file-editor.html
bat 함수 구현
@echo off
setlocal
call :FOO 5 6
goto :EOF
:FOO
set /a RESULT=%1 * %2
echo %RESULT%
setlocal
call :FOO 5 6
goto :EOF
:FOO
set /a RESULT=%1 * %2
echo %RESULT%
텍스트 파일로 저장하기
기호 > 를 사용한다.
현재 날짜를 저장한다면,
echo %date% > test.txt
echo %date% > test.txt
키보드로 부터 문자열 입력받기
@echo off
setlocal
set /p str=아무 문자열이나 입력하세요:
echo 방금 입력하신 문자열은 %str% 입니다
setlocal
set /p str=아무 문자열이나 입력하세요:
echo 방금 입력하신 문자열은 %str% 입니다
윈도우 버전을 보여주는 배치파일
@echo off
if "%1" == "/?" goto HELP
echo 윈도우의 버전을 보여주는 배치 파일입니다. ( 도움말: %0 ^/? )
ver
echo.
goto QUIT
:HELP
echo 이 배치 파일에 대한 도움말입니다.
echo "/?" 라는 옵션을 주어 실행시키면
echo 이 도움말이 나옵니다.
echo.
echo 그렇지 않으면 윈도우의 버전을 보여 준 후
echo 끝납니다.
:QUIT
if "%1" == "/?" goto HELP
echo 윈도우의 버전을 보여주는 배치 파일입니다. ( 도움말: %0 ^/? )
ver
echo.
goto QUIT
:HELP
echo 이 배치 파일에 대한 도움말입니다.
echo "/?" 라는 옵션을 주어 실행시키면
echo 이 도움말이 나옵니다.
echo.
echo 그렇지 않으면 윈도우의 버전을 보여 준 후
echo 끝납니다.
:QUIT
IF 비교연산자
== 같음
EQU 같음
NEQ 같지 않음
LSS 보다 작은
LEQ 작거나 같음
GTR 보다 큰
GEQ 크거나 같음
EQU 같음
NEQ 같지 않음
LSS 보다 작은
LEQ 작거나 같음
GTR 보다 큰
GEQ 크거나 같음
내 윈도우(vista 64bit)에서 지원하는 명령어들
ASSOC 파일 확장명 연결을 보여주거나 수정합니다.
ATTRIB 파일 속성을 표시하거나 바꿉니다.
BREAK 확장된 CTRL+C 검사를 설정하거나 지웁니다.
BCDEDIT 부팅 로딩을 제어하기 위해 부팅 데이터베이스에서 속성을 설정합니다.
CACLS 파일의 액세스 컨트롤 목록(ACL)을 표시하거나 수정합니다.
CALL 한 일괄 프로그램에서 다른 일괄 프로그램을 호출합니다.
CD 현재 디렉터리 이름을 보여주거나 바꿉니다.
CHCP 활성화된 코드 페이지의 번호를 표시하거나 설정합니다.
CHDIR 현재 디렉터리 이름을 보여주거나 바꿉니다.
CHKDSK 디스크를 검사하고 상태 보고서를 표시합니다.
CHKNTFS 부팅하는 동안 디스크 확인을 화면에 표시하거나 변경합니다.
CLS 화면을 지웁니다.
CMD Windows 명령 인터프리터의 새 인스턴스를 시작합니다.
COLOR 콘솔의 기본색과 배경색을 설정합니다.
COMP 두 개 또는 여러 개의 파일을 비교합니다.
COMPACT NTFS 분할 영역에 있는 파일의 압축을 표시하거나 변경합니다.
CONVERT FAT 볼륨을 NTFS로 변환합니다. 현재 드라이브는 변환할 수 없습니다.
COPY 하나 이상의 파일을 다른 위치로 복사합니다.
DATE 날짜를 보여주거나 설정합니다.
DEL 하나 이상의 파일을 지웁니다.
DIR 디렉터리에 있는 파일과 하위 디렉터리 목록을 보여줍니다.
DISKCOMP 두 플로피 디스크의 내용을 비교합니다.
DISKCOPY 플로피 디스크의 내용을 다른 플로피 디스크로 복사합니다.
DISKPART 디스크 파티션 속성을 표시하거나 구성합니다.
DOSKEY 명령줄을 편집하고, Windows 명령을 다시 호출하고, 매크로를 만듭니다.
DRIVERQUERY 현재 장치 드라이버 상태와 속성을 표시합니다.
ECHO 메시지를 표시하거나 ECHO를 사용 또는 사용하지 않습니다.
ENDLOCAL 일괄 파일에서 환경 변경의 지역화를 끝냅니다.
ERASE 하나 이상의 파일을 지웁니다.
EXIT CMD.EXE 프로그램(명령 인터프리터)을 마칩니다.
FC 두 파일 또는 파일의 집합을 비교하여 다른 점을 표시합니다.
FIND 파일에서 텍스트 문자열을 찾습니다.
FINDSTR 파일에서 문자열을 찾습니다.
FOR 파일 집합에서 각 파일에 대해 지정된 명령을 실행합니다.
FORMAT Windows에서 사용할 디스크를 포맷합니다.
FSUTIL 파일 시스템 속성을 표시하거나 구성합니다.
FTYPE 파일 확장 연결에 사용되는 파일 형식을 표시하거나 수정합니다.
GOTO Windows 명령 인터프리터가 일괄 프로그램에서 이름표가 붙여진 줄로 이동.
GPRESULT 컴퓨터 또는 사용자에 대한 그룹 정책 정보를 표시합니다.
GRAFTABL Windows가 그래픽 모드에서 확장 문자 세트를 표시할 수 있게 합니다.
HELP Windows 명령어에 관한 도움말을 제공합니다.
ICACLS 파일과 디렉터리에 대한 ACL을 표시, 수정, 백업 또는 복원합니다.
IF 일괄 프로그램에서 조건 처리를 수행합니다.
LABEL 디스크의 볼륨 이름을 만들거나, 바꾸거나, 지웁니다.
MD 디렉터리를 만듭니다.
MKDIR 디렉터리를 만듭니다.
MKLINK 기호화된 링크와 하드 링크를 만듭니다.
MODE 시스템 장치를 구성합니다.
MORE 출력을 한번에 한 화면씩 표시합니다.
MOVE 하나 이상의 파일을 한 디렉터리에서 다른 디렉터리로 옮깁니다.
OPENFILES 파일 공유에서 원격 사용자에 의해 열린 파일을 표시합니다.
PATH 실행 파일의 찾기 경로를 보여주거나 설정합니다.
PAUSE 일괄 파일의 처리를 보류하고 메시지를 보여줍니다.
POPD PUSHD 명령으로 저장된 디렉터리로 바꿉니다.
PRINT 텍스트 파일을 인쇄합니다.
PROMPT Windows 명령 프롬프트를 바꿉니다.
PUSHD 현재 디렉터리를 저장한 후 디렉터리를 바꿉니다.
RD 디렉터리를 지웁니다.
RECOVER 불량이거나 결함이 있는 디스크에서 읽을 수 있는 정보를 복구합니다.
REM 일괄 파일 또는 CONFIG.SYS에서 주석을 기록합니다.
REN 파일 이름을 바꿉니다.
RENAME 파일 이름을 바꿉니다.
REPLACE 파일을 대체합니다.
RMDIR 디렉터리를 지웁니다.
ROBOCOPY 파일과 디렉터리 트리를 복사할 수 있는 고급 유틸리티입니다.
SET Windows 환경 변수를 보여주거나, 설정하거나, 지웁니다.
SETLOCAL 일괄 파일에서 환경 변경의 지역화를 시작합니다.
SC 서비스를 표시하거나 구성합니다(백그라운드 작업).
SCHTASKS 컴퓨터에서 실행할 명령과 프로그램을 예약합니다.
SHIFT 일괄 파일에서 바꿀 수 있는 매개 변수의 위치를 바꿉니다.
SHUTDOWN 컴퓨터의 로컬 또는 원격 종료를 허용합니다.
SORT 입력을 정렬합니다.
START 지정된 프로그램이나 명령을 별도의 창에서 시작합니다.
SUBST 경로를 드라이브 문자로 지정합니다.
SYSTEMINFO 특정 컴퓨터의 속성과 구성을 표시합니다.
TASKLIST 서비스를 포함한 실행 중인 모든 작업을 표시합니다.
TASKKILL 실행 중인 프로세스나 응용 프로그램을 중지합니다.
TIME 시스템 시간을 보여주거나 설정합니다.
TITLE CMD.EXE 세션에 대한 창의 창 제목을 설정합니다.
TREE 드라이브 또는 경로의 디렉터리 구조를 그래픽으로 화면에 표시합니다.
TYPE 텍스트 파일의 내용을 보여줍니다.
VER Windows 버전을 보여줍니다.
VERIFY 파일이 디스크에 올바로 쓰였는지 검증할지
여부를 지정합니다.
VOL 디스크 볼륨 이름과 일련 번호를 보여줍니다.
XCOPY 파일과 디렉터리 트리를 복사합니다.
WMIC 대화형 명령 셸 내의 WMI 정보를 표시합니다.
종합하여 만들어 본
텍스트 파일에서 데이터 읽어서 변환하여 다시 저장하기 (dlight 홍보관에 쓰임)
뛰어쓰기 정말 잘해야 한다. if문 쓰기 정말 힘듦.
그치만 쓸만한 가치가 많아!
@echo off
setlocal
setlocal
title 삼성서초홍보관 무드튜브 내부 Moodtube Inside
color 02
color 02
set input=%2
set lastDate=0
set lastMode=0
set count=0
set lastDate=0
set lastMode=0
set count=0
if "%1" == "/m" (
echo %input% 모드 입력했음
rem > 곂쳐쓰기
rem >> 덧붙이기
echo day %date% > mode.txt
echo mode %input% >> mode.txt
) else (
rem > 곂쳐쓰기
rem >> 덧붙이기
echo day %date% > mode.txt
echo mode %input% >> mode.txt
) else (
rem txt파일에서 한줄씩 글을 반환한다.
for /f "delims=" %%i in (mode.txt) do call :FN %%i
rem 변수없애기
set count=
set lastMode=
set input=
set lastMode=
)
for /f "delims=" %%i in (mode.txt) do call :FN %%i
rem 변수없애기
set count=
set lastMode=
set input=
set lastMode=
)
goto :EOF
:FN
set /a count = %count% + 1
if "%count%" == "1" (
call :SETDATE %*
)
if "%count%" == "2" (
call :SETMODE %*
)
goto :EOF
set /a count = %count% + 1
if "%count%" == "1" (
call :SETDATE %*
)
if "%count%" == "2" (
call :SETMODE %*
)
goto :EOF
:SETDATE
set lastDate=%2
goto :EOF
:SETMODE
set lastMode=%1 %2
echo 지난 날짜 %lastDate%
rem echo 지난 모드 %lastMode%
rem echo 지난 모드 %lastMode%
if "%2" == "0" (
echo 지난 모드는 mode 0 동물입니다.
)
if "%2" == "1" (
echo 지난 모드는 mode 1 방울입니다.
)
if "%2" == "2" (
echo 지난 모드는 mode 2 사람입니다.
)
echo 지난 모드는 mode 0 동물입니다.
)
if "%2" == "1" (
echo 지난 모드는 mode 1 방울입니다.
)
if "%2" == "2" (
echo 지난 모드는 mode 2 사람입니다.
)
if not "%lastDate%" == "%date%" (
call :QUESTION1
)
if "%lastDate%" == "%date%" (
call :QUESTION2
)
goto :EOF
call :QUESTION1
)
if "%lastDate%" == "%date%" (
call :QUESTION2
)
goto :EOF
:QUESTION1
echo 설정 날짜가 오늘과 다르므로 새모드가 적용됩니다.
set /p yn=그래도 모드를 변경하시겠습니까? y : n
if /i "%yn%" == "y" goto INPUTNEW
if /i "%yn%" == "n" goto SAVENEW
set /p yn=그래도 모드를 변경하시겠습니까? y : n
if /i "%yn%" == "y" goto INPUTNEW
if /i "%yn%" == "n" goto SAVENEW
:QUESTION2
echo 지난 모드 설정 날짜가 오늘과 같습니다
set /p yn=그래도 모드를 변경하시겠습니까? y : n
if /i "%yn%" == "y" goto INPUTNEW
if /i "%yn%" == "n" goto EXE
set /p yn=그래도 모드를 변경하시겠습니까? y : n
if /i "%yn%" == "y" goto INPUTNEW
if /i "%yn%" == "n" goto EXE
:INPUTNEW
set /p nMode=새 모드를 입력하십시요. 0(동물) : 1(방울) : 2(사람)
set /p nMode=새 모드를 입력하십시요. 0(동물) : 1(방울) : 2(사람)
if "%nMode%" GTR "2" goto INPUTERR
if "%nMode%" LEQ "3" goto INPUTOK
if "%nMode%" LEQ "3" goto INPUTOK
:INPUTERR
echo 입력범위 0~2 초과하였습니다.
goto INPUTNEW
:INPUTOK
echo 새 날짜 %date%
echo 새 모드 %nMode%
rem echo write=%date%&mode=%nMode%> mode.txt
echo day %date% > mode.txt
echo mode %nMode% >> mode.txt
goto EXE
echo day %date% > mode.txt
echo mode %nMode% >> mode.txt
goto EXE
:SAVENEW
set /a lastMode = %lastMode% + 1
if "%lastMode%" == "3" (
set lastMode = 0
)
echo 새 날짜 %date%
echo 새 모드 %lastMode%
set lastMode = 0
)
echo 새 날짜 %date%
echo 새 모드 %lastMode%
rem echo write=%date%&mode=%lastMode%> mode.txt
echo day %date% > mode.txt
echo mode %lastMode% >> mode.txt
echo day %date% > mode.txt
echo mode %lastMode% >> mode.txt
goto EXE
:EXE
echo 모드 설정 작업끝
echo 아무키나 누르세요.
set /p tn=무드튜브 내브 소켓서버와 컨텐츠가 실행됩니다.
set tn=
color
MoodTubeServer_x7.exe
'Windows' 카테고리의 다른 글
[펌] Account Lockout Tools (EventCombMT) (1) | 2012.01.20 |
---|---|
Windows 계정 감사 (0) | 2011.12.26 |
성능카운트 : SQL 서버 진단을 위한 주요 성능 카운터 (0) | 2011.08.02 |
성능 측정시 성능 모니터링 카운터 (0) | 2011.08.02 |
Event ID 769 Source WDSServer 오류 (0) | 2011.08.02 |