2014. 10. 8. 13:25
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


C:\>copy con batch.bat

echo Hello world > test.txt

dir /b

type test.txt

pause

del test.txt

dir /b

^Z                -> ctrl +z    -> enter 

        1개 파일이 복사되었습니다.


-------


C:\>copy con echo.bat

echo sec

@echo sec

@echo.            -> 한칸 띄우기 

@echo off

echo sec

^Z

        1개 파일이 복사되었습니다.


C:\>echo.bat


C:\>echo sec

sec

sec


sec



----------------------




C:\>copy con aa.bat

@echo off

set name=aaaa

set /p first=첫번째값을 입력하세요.

set /p second=두번째 값을 입력하세요 :

set /a sum=first+second

echo.

echo 당신의 이름은 %name%입니다.

echo %first% + %second% = %sum%


^Z

        1개 파일이 복사되었습니다.


C:\>aa.bat

첫번째값을 입력하세요.1

두번째 값을 입력하세요 :2


당신의 이름은 aaaa입니다.

1 + 2 = 3

C:\>




set 변수명 -> 변수 선언

%변수명% -> 선언된 변수를 사용

set /a 변수명 -> 변수를 숫자형으로 선언

set /p 변수명 -> 입력받은 문자를 변수에 할당 




-----------------




@echo off

set var=0123456789

echo %var%                    -> 0123456789

echo %var:123=abc%        -> 0abc456789

echo %var:123=%              -> 0456789

echo %var:~0%                -> 0123456789

echo %var:~-5%              -> 56789

echo %var:~0,3%             -> 012

echo %var:~0,-3%            -> 0123456

echo %var:~-3,5%            -> 789

echo %var:~-3,-1%          -> 78

^Z

        1개 파일이 복사되었습니다.


C:\>set1.bat

0123456789

0abc456789

0456789

0123456789

56789

012

0123456

789

78


-----------------------------


매개 변수 


파일 실행시 파일명과 함께 입력하는 확장 변수


@echo off

echo %0 : %0             -> 0번지

echo %1 : %1             -> 1번지 인자 

echo %1 %2 : %1 %2  -> 2번지 인자 

echo %* : %*            -> 모두 출력 



C:\>argv 1 2 3

argv : argv

1 : 1

1 2 : 1 2

1 2 3 : 1 2 3




--------------


GOTO


레이블을 사용하여 특정 레이블로 이동한 후 스크립트를 계속 실행한다 


@echo off

echo 1

echo 2

goto :next

echo 5


:next

echo 3

echo 4




C:\>goto.bat

1

2

3

4




--------------


CALL


레이블을 사용하여 특정 레이블을 호출하여 사용한다 

호출한 후 돌아와서 다시 순차적으로 실행 


@echo off

echo 1

echo 2

call :next

echo 5


:next

echo 3

echo 4



C:\>call.bat

1

2

3

4

5

3

4


-----------------------


if 구문 


제어문으로 특정 조건이 참인지 거짓인지에 따라 다른 명령어를 실행한다 



@echo off

if "%1" EQU "aaaa" (

echo aaaa!!

) else (                        -> 띄어쓰기 안 하면 안 됨 

echo Not aaaa!!

)




C:\>if.bat 1

Not aaaa!!


C:\>if.bat aaaa

aaaa!!



-> 옵션을 따로 넣지 않으면 대소문자 구분함 

-> if/i  -> 대소문자에 관계없이 문자열 비교 






!=! 문자열이 다르면 수행 


조건1  EQU  조건2    -->  =

조건1  NEQ  조건2    --> <>    

조건1  LSS  조건2    -->  <
조건1  LEQ  조건2    --> <=

조건1  GTR  조건2    -->  >

조건1  GEQ  조건2    --> >=




-----------------------------



@echo off

setlocal        -> 지역변수 

set /p number=number :


if %number% GEQ 5 (

if %number% LEQ 10 (

set ok=ok

)

)

if "%ok%"=="ok" (

echo %number%

) else (

echo Not Range!

)




C:\>if2.bat

number :1

Not Range!


C:\>if2.bat

number :4

Not Range!


C:\>if2.bat

number :7

7



------------------------


FOR 


for %변수명 in (범위) do (

명령어 

)



@echo off

for %%i in (a b c) do (

echo %%i

)



C:\>for.bat

a

b

c



for /l %변수 in (초기값, 증가값, 최대값) do 명령  -> 증가 또는 감소하는 for문
for /f "옵션" %변수 in (파일명) do 명령   -> 파일 내용을 범위로 사용
for /f "옵션" %변수 in ("문자열") do 명령  -> 문자열을 범위로 사용
for /f "옵션" %변수 in ("명령어") do 명령   -> 명령 실행 결과를 범위로 사용 




-------------------------



@echo off

for %%a in (test.txt) do echo %%a

for /f %%a in (test.txt) do echo %%a






---------



sum




set /a 변수=수식


set B=5

set /a B=B+3

echo %B%


    = *= /= %= += -=    - 할당


set /a B+=3          =>   B에 3을 더해서 새로운 B 값을 할당          => 8

set /a B-=3          =>   B에 3을 빼서 새로운 B 값을 할당          => 2

set /a B*=3          =>   B에 3을 곱해서 새로운 B 값을 할당          => 15

set /a B/=3          =>   B를 3으로 나눈 몫을 새로운 B 값에 할당          => 1

set /a B%=3         =>   B를 3으로 나눈 나머지를 새로운 B 값에 할당          => 2



-----------------



@echo off

set ss=0

for /l %%a in (1,1,100) do (

set /a ss+=%%a

)

echo %ss%



C:\>1.bat

5050





@echo off

set ss=0

for /l %%aa in (1,1,100) do (

set /a ss+=%%aa

)

echo %ss%



C:\>1.bat

%aa은(는) 예상되지 않았습니다.


-> 변수인식이 잘 안 되는 미스테리, 버그인가?




 



'System ' 카테고리의 다른 글

understanding utf -8 (video clip)  (0) 2015.06.21
shell programming 2  (0) 2014.10.13
stack / heap bof  (0) 2014.10.02
nop BOF  (0) 2014.10.01
basic start of BOF  (0) 2014.09.30
Posted by af334