반응형

출처:http://ayonc.tistory.com/27


1. choice

set /p YN=(Y/N)?

:: "set /p 변수명=" 사용자에게 Y/N을 선택할 수 있게한다.

if /i "%YN%" == "y" goto YES

if /i "%YN%" == "n" goto NO



2. 배치파일에 빈 줄 넣기

echo.

:: echo뒤에 점찍으면 줄이 띄어짐


3. 다른 배치파일 호출

call 파일경로


4. 반복문

:LOOP


echo 문자 출력 작업

pause

::pause를 설정하면 사용자가 키를 눌러야 다음으로 넘어간다.

goto LOOP

 

5. if문


if exist c:\test\ (

        echo 있음

) else (

        echo 그런거 없음

)


6. 문서에 echo 찍기

:: 파일 뒤에 이어쓰기

echo 안녕하슈 >> test.txt

:: 파일 덮어쓰기

echo 안녕함 > test.txt


7. 매개변수 받기

echo 첫번째인수 : %1

echo 두번째인수 : %2

echo 세번째인수 : %3

c:\>test.bat aa bb cc

첫번째인수 : aa

두번째인수 : bb

세번째인수 : cc


8. 도스에서 폴더를 복사하기

xcopy c:\test\*.* c:\test1\test\ /e /h /k

/e : 비어있는 하위 폴더도 복사

/h : 숨긴 파일, 시스템파일도 복사

/k : 파일 속정 복사. (읽기전용)

::현재 디렉토리에 있는 모든 파일을 다른곳으로 복사

copy . c:\new


9. 파일 확장자 변경

::ren 이름바꾸는 명령어

ren *.txt *.doc


10. 오늘 날짜 출력하기

echo %date%

:: 출력 "금 2013-05-03"

echo %time%

:: 출력 "10:35:03.56"


:: 원하는 모양으로 다듬기

:: 요일제거하고 날짜만 얻기

set myDate=%date:~2%

echo %myDate%

set myDate=


:: 윈도우 2000이상에서 요일 구하기

echo %date:~0,1%요일


11. 컴퓨터 이름 알아내기

:: set만 치면 환경변수가 쫙뜬다.

set

:: 거기서 COMPUTERNAME을 본다. 컴퓨터 이름만 보려면

echo %COMPUTERNAME%


12. echo가 안되는 특수문자(<,>,|)를 출력하기

echo ^>

echo ^<

echo ^|

echo ^^

 

13. 폴더 삭제 시 "디렉터리가 비어 있지 않습니다." "The directory is not empty"

rmdir /s c:\test\

:: 그 외에 삭제하기

:: 기본

del test.txt

del *.txt

:: 읽기 전용 파일 삭제

del /f test.txt

:: 숨김 파일 삭제

del /a test.txt


14. 폴더 생성하기

md test1

:: 하위 폴더도 생성

md test1\test2\test3


15. 텍스트 파일에 줄번호 붙여서 출력하기

:: 빈줄은 세지 못함.. <,>,| 이런 기호는 출력못함


for /f "delims=" %%i in (test.txt) do call :FUNCTION %%i

goto :EOF

:FUNCTION

set /a SUM=%SUM% + 1

echo %SUM%: %*


16. 배치파일에서 서브루틴 구현

:: call 로 FOO를 호출 5,6을 인수로 준다.


call :FOO 5 6

goto :EOF

:FOO

set /a RESULT=%1 * %2

echo %RESULT%


17. 배치파일에서 문자열 다루기

set string=abcdefghi

:: 추출하기 2번째 글자부터 시작해서 3글자까지 추출하기

set newstring=%string:~2,3%

echo %newstring%


18. 랜덤 숫자 만들기 1~100 까지 20출력


set num

:LOOP

set /a myNum=%RANDOM% %% 100+1

echo %myNum%


set /a count+=1

if %count% GEQ 20 goto QUIT

goto LOOP

:QUIT


19. if문 쓰는법

:: if 조건문 실행문

if "%1" == "/?" goto HELP

:: /i옵션을 붙이면 대소문자 구분없이 문자열을 비교

if /i "%1" == "-h" goto HELP


20. for문 쓰기

:: for 변수  in 대상 파일 범위   do 실행할 명령어, 옵션

for %%i in (*.*) do attrib "%%i"

:: /d : 파일이 아닌 디렉토리를 대상으로함

:: /r : 하위 파일까지 처리


21. sort 명령 사용 : txt파일 안에 내용을 순서대로 정렬하여 출력

sort test.txt

:: 다른 파일로 출력

sort test.txt >> out.txt


22. 배치파일 반환 값 설정하기

:: 강제적으로 반환값을 설정

@exit /b %1


23. 배치파일 종료시 변수 자동으로 지우기

:: 변수를 정의하기 전에 setlocal추가 이 다음에 선언된 변수는 자동으로 사라짐

setlocal

set Test=foo

echo %Test%

:: 기존 환경변수와 같은 이름의 변수명을 써야할 때

set Path=C:\test\

:: 배치파일 내에서 setlocal을 중간에 끝내야 할때. 실제 환경변수를 써야할때

endlocal

echo %Path%

:: Test는 사라짐.


24. 윈도우 에서 grep하기

:: 시그윈을 설치하면 grep쓸수 있음

:: 그거 말고도 findstr을 사용

findstr /?


25. 주석은 '::' 나 rem을 사용

:: 주석문

rem 주석문


26. 프로그램이나 명령어를 수행할때, 그 프로그램이나 명령문이 성공적으로 끝나면 os에 0을 반환한다.

하지만 실패하거나 문제가 있을때는 0이 아닌 값을 출력한다. 좀 더 특수한 문제가 있잇을때 프로그래머의 마음에 따라 숫자를 지정할 수도 있다.

echo %ERRORLEVEL%

if not "%errorlevel%" == "0" goto ERROR

goto OK


:ERROR

echo failed!

goto QUIT


:OK

echo success!

goto QUIT


:QUIT


27. 파일 비교하기.

fc /?

fc test1.txt test2.txt

:: 공백무시하고 비교

fc /w test1.txt test2.txt

:: 바이너리파일 비교

fc /b test1.exe test2.exe

반응형

+ Recent posts