반응형

시작 -> 실행 -> gpedit.msc -> 관리템플릿 -> Windows 구성요소 -> Windows Update -> 예약 설치의 다시 시작 지연(더블클릭) -> 사용 안함 -> 확인

임시적으로 멈추게 하는 방법
시작 -> 실행 -> cmd -> net start wuauserv

이걸 간단하게 배치파일로 만들면

메모장 열어서

@echo off
net stop wuauserv

쓰고 모든파일형식에서 RebootX.bat  이런식으로 확장자 bat로 저장합니다.

끝.;

반응형
블로그 이미지

NINEx

일상과 IT의 만남

,
반응형

배치파일(.bat)을 만들 때 첫줄에 쓰는 @echo off 의 의미는 무엇일까요?

사실.. 안써도 상관없습니다.

근데 왜 쓰는지는 간단한 배치파일을 만들어 보면 알 수 있습니다.

 테스트 과정

 1. 메모장 열어서 내용에
  dir

 이라고만 쓰고 저장 할 때는 파일 형식을 모든 파일이라고 적고   test.bat 이라는 파일 이름으로 저장합니다.

2. 시작 -> 실행 -> cmd 
명령 프롬프트 열어서 저장한 test.bat를 cmd 화면에 드래그 해서 끌어놓고 엔터를 쳐봅니다.
(현재 테스트 OS는 XP이다. 드래그 안되면 절대 경로를 써넣어서 실행하던지, 경로를 찾아 들어가서 실행하길 바람)

3. 저장했던 test.bat파일을 내용 편집해서

  @echo off
    dir

이라고 쓰고 저장 한다음 2번의 과정을 다시 한번 해봅시다.

차이점을 찾았는지요?

차이점은 dir이라는 명령어를 cmd 화면에 한번 뿌려주는지 아닌지의 차이가 있습니다.

@echo off 명령어를 통해서 이런식으로 나타나는 명령어 출력을 막을 수 있습니다.

그럼 @echo on은 뭘까요?

off가 명령어 출력이 안되도록 하는거면 on은 출력이 되도록 하는 거겠죠?

반응형

'Study > Batch File' 카테고리의 다른 글

윈도우 업데이트후 재부팅 창 안뜨게 하기  (0) 2010.03.02
Batch File Command  (0) 2010.03.01
부팅로그남기는 Batch File 만들기  (0) 2010.03.01
블로그 이미지

NINEx

일상과 IT의 만남

,
반응형

기본 조건

메모장(기타편집기)으로 c: 에 test.bat 파일을 생성 

Commands

%1

내 용

cmd에서
c:\>test.bat [value]
%1 = [value]

예 제

test.bat 내용

@echo off
hello %1

실행1

c:\>test.bat
hello

실행2

c:\>test.bat test
hello test

Commands

CALL

내 용

다른 bat파일을 불러온다.

예 제

test.bat 내용

@echo off
hello
call test2.bat

test2.bat 내용

@echo off
Thanks

실행

c:\>test.bat
hello
Thanks


Commands

:LABEL

내 용

라벨과 같은 단어 앞에 콜론을 추가함으로써, 분류를 만든다. 이렇게하면 GOTO문을 이용해서 실행 순서 변경이 가능하다.

예 제

test.bat 내용

@echo off
:LABEL1
echo Hello
GOTO LABEL3 

:LABEL2
echo Hello2 

:LABEL3
CALL test2.bat

GOTO LABEL2

test2.bat 내용

@echo off

Thanks

실행

c:\>test.bat
Hello
Thanks
Hello2
Thanks
Hello2
Thanks
Hello2
Thanks
Hello2
Thanks
Hello2
.
.
.
.

설명

실행하면 무한반복 할 것이다.

LABEL1->LABEL3으로 LABEL3->LABEL2로, LABEL2에서는 순서대로 실행을 하니 LABEL3을 만나서 다시 LABEL2로..

이렇게 무한반복을 하게 되면

CTRL+C 을 눌러서

일괄 작업을 끝내시겠습니까 (Y/N)? y

를 해서 끝낸다. 
여기서 무한반복을 막으려면

@echo off
:LABEL1
echo Hello
GOTO LABEL3
:LABEL2
echo Hello2

GOTO END

:LABEL3
CALL test2.bat
GOTO LABEL2

:END

위와 같이 END라는 라벨을 추가해서 고쳐주면 LABEL2에서 :END 라벨로 이동하여 무한반복 되지 않고 마칠 것이다.

추가설명

특정한 횟수만큼만 반복을 하고 싶을 때

@echo off
set Count=1
:LABEL1
echo hello
set /a Count+=1
if %Count% GEQ 10 goto END
:LABEL2
GOTO LABEL1
:END

set Count=1을 해서 Count라는 변수값을 초기화 하고

set /a Count+=1을 통해서 Count변수 값을 1씩 증가

if %Count% GEQ 10 goto END를 통해서 Count라는 변수값이 10이 될 경우 END 라벨로 이동해서 끝냄

Commands

CLS

내 용

화면을 지운다

예 제

test.bat 내용

@echo off
echo hello
CLS

실행

c:\>test.bat
c:\>

설명

CLS 때문에 화면이 다 지워진다. CLS의 위치에 따라 효율적으로 사용 할 수 있다.

Commands

REM

내 용

주석처리

예 제

test.bat 내용

@echo off
REM <무시할 문장>
echo Hello

실행

c:\>test.bat
Hello

설명

REM 뒤에 적는 문장은 주석으로 취급되어 출력되지 않는다.

추가설명

기타 주석처리 하는 방법
1.
: 내용
2.
:: 내용

Commands

EXIT

내 용

cmd 명령프롬프트 창 종료

예 제

test.bat 내용

@echo off
echo hello
EXIT

실행

c:\>test.bat
hello
<창 닫힌다>

설명

hello를 출력하고 나서 창이 닫힌다.

추가설명

기타 주석처리 하는 방법
1.
: 내용
2.
:: 내용

Commands

PAUSE

내 용

사용자에게 아무 키 입력을 기다린다.

예 제

test.bat 내용

@echo off
PAUSE
echo Hello

실행

c:\>test.bat
계속하려면 아무 키나 누르십시오 . . .
Hello

Commands

IF

내 용

조건을 설정한다.

예 제

test.bat 내용

@echo off

set aaa=test.hwp
if exist %aaa% (
echo %aaa% 파일 존재함.
) else (
echo %aaa% 파일 없음.
)

실행

[경우1] test.hwp 파일이 같은 위치에 존재할 때

c:\>test.bat

test.hwp 파일 존재함.

실행2

[경우2] test.hwp 파일이 없을 때
c:\>test.bat
test.hwp 파일 없음.

설명

aaa라는 변수에 test.hwp라는 값을 넣고
if문을 이용해서 aaa라는 변수 안에 들어있는 값이 존재하는지 exist를 사용하여 확인하는 방법.

추가방법

if exist %aaa% echo %aaa% 파일 존재함.

if not exist %aaa% echo %a% 파일 없음.

Commands

COPY

내 용

파일을 복사한다.

예 제

test.bat 내용

@echo off
COPY a.txt b.txt

실행

c:\>test.bat
1개 파일이 복사되었습니다.

설명

COPY 원본파일 복사할파일

위와 같은 형식이다. 단, a.txt파일이 있어야 이 파일을 b.txt로 COPY가 가능하다.

추가방법

COPY a.txt %date%.txt
이렇게 입력하면 오늘 날짜로 파일이 생성된다.

반응형
블로그 이미지

NINEx

일상과 IT의 만남

,
반응형

:: 컴퓨터 부팅시 접속 시간이 기록되는 간단한 배치파일을 만들어 봅시다.
:: 아래 내용을 복사 붙여넣기 해서 메모장에 붙여넣고, bootlog.bat 라고 저장합니다.
:: 그리고 나서 시작-프로그램-시작프로그램  에 넣어 놓습니다.
:: 이제 컴퓨터 부팅 때 마다 c:\bootlog.txt파일에 부팅시간이 기록됩니다.

@echo off
set nowdatetime=%date% %time%
::년월일시분초로 나누기 위해 날짜와 시간을 nowdatetime으로 set시킵니다.
::yy->년, mm->월, dd->일, hh->시, mi->분, ss->초를 의미합니다.
::yy=%nowdatetime:~0,4%  의 의미는 set nowdatetime(2010-03-01 10:33:31.65를 의미)값을 보기 좋게 표현하기 위해 0번째 오프세트(1번째 글자)부터 3번째 오프세트(4번째 글자)까지만 잘라서 yy라고 set시킨다는 뜻입니다.

set yy=%nowdatetime:~0,4%
set mm=%nowdatetime:~5,2%
set dd=%nowdatetime:~8,2%
set hh=%nowdatetime:~11,2%
set mi=%nowdatetime:~14,2%
set ss=%nowdatetime:~17,2%

set bootlogdatetime=%yy%년 %mm%월 %dd%일 %hh%시 %mi%분 %ss%초

echo %bootlogdatetime% 에 PC가 부팅되었습니다.>> c:\bootlog.txt


 
반응형
블로그 이미지

NINEx

일상과 IT의 만남

,
-->