반응형
integral_br_01

Integral problems

1. tan5xsec3xdx\int \tan^5x \sec^3x dx

cf) ddxsecx=secxtanx\frac{d}{dx} \sec{x}=\sec{x} \tan{x}
1+tan2x=sec2x=ddxtanx1+\tan^2{x} = \sec^2{x}=\frac{d}{dx} \tan{x}
use secxtanx\sec{x} \tan{x} part.
tan5xsec3xdx=tan4xsec2xtanxsecxdx(u=secx,du=secxtanxdx)=tan4xsec2xdu=(sec2x1)2sec2xdu=(u21)2u2du=(u42u2+1)u2du=u62u4+u2du=17u725u5+13u3+C=17sec7x25sec5x+13sec3x+C \begin{aligned} &\int \tan^5x \sec^3x dx\\ &=\int tan^4xsec^2x \tan{x} \sec{x} dx\\ &(u = \sec{x} , du = \sec{x}\tan{x}dx)\\ &=\int tan^4xsec^2x du\\ &=\int (\sec^2{x}-1)^2sec^2{x} du \\ &=\int (u^2-1)^2u^2du\\ &=\int (u^4-2u^2+1)u^2du\\ &=\int u^6-2u^4+u^2du\\ &=\frac{1}{7}u^7-\frac{2}{5}u^5+\frac{1}{3}u^3+C\\ &=\frac{1}{7}{\sec^7{x}}-\frac{2}{5}{\sec^5{x}}+\frac{1}{3}{\sec^3{x}}+C \end{aligned}


2. cos2xsinx+cosxdx\int \frac{\cos{2x}}{\sin{x}+\cos{x}}dx

cf) cos2x=cos2xsin2x=12sin2x=2cos2x1\cos{2x}=\cos^2{x}-\sin^2{x}=1-2\sin^2{x}=2cos^2{x}-1

cos2xsinx+cosxdx=cos2x(cosxsinx)(sinx+cosx)(cosxsinx)dx=cos2x(cosxsinx)cos2xsin2xdx=cosxsinxdx=sinx+cosx+C \begin{aligned} &\int \frac{\cos{2x}}{\sin{x}+\cos{x}}dx\\ &=\int \frac{\cos{2x}(\cos{x}-\sin{x})} {(\sin{x}+\cos{x})(\cos{x}-\sin{x})}dx\\ &=\int \frac{\cos{2x}(\cos{x}-\sin{x})} {\cos^2{x}-\sin^2{x}}dx\\ &=\int \cos{x}-\sin{x}dx\\ &=\sin{x}+\cos{x}+C \end{aligned}


3. x2+1x4x2+1dx\int\frac{x^2+1}{x^4-x^2+1} dx

cf)
(x4x2+1)(x4+x2+1)=x8x6+x4+x6x4+x2+x4x2+1=x8+x4+1 (x^4-x^2+1)(x^4+x^2+1)=\\ x^8-x^6+x^4+ x^6-x^4+x^2 +x^4-x^2+1\\ =x^8+x^4+1
부분 분수로 나눠보자.
x2+1x4x2+1=cx2+ax+1+dx2+bx+1()=12x2+3x+1+12x23x+1 \frac{x^2+1}{x^4-x^2+1}\\ =\frac{c}{x^2+ax+1}+\frac{d}{x^2+bx+1}\\ (미지수를 구한다)\\ =\frac{\frac{1}{2}}{x^2+\sqrt{3}x+1}+\frac{\frac{1}{2}}{x^2-\sqrt{3}x+1}
따라서 적분을 취하면.
x2+1x4x2+1dx=121x2+3x+1dx+121x23x+1dx=121(x+32)2+14dx+121(x32)2+14dx \int\frac{x^2+1}{x^4-x^2+1} dx\\ =\frac{1}{2}\int \frac{1}{x^2+\sqrt{3}x+1}dx+\frac{1}{2}\int \frac{1}{x^2-\sqrt{3}x+1}dx\\ =\frac{1}{2}\int \frac{1}{ (x+\frac {\sqrt{3}}{2})^2+\frac{1}{4}}dx+\frac{1}{2}\int \frac{1}{ (x-\frac {\sqrt{3}}{2})^2+\frac{1}{4}}dx
먼저 왼쪽 부분을 계산해 보자. 제곱의 형태를 삼각치환해 보자. (1+tan^x 꼴로 만든다.)
12tanθ=x+32\frac{1}{2}\tan\theta=x+\frac{\sqrt{3}}{2}
dx=12sec2θdθdx = \frac{1}{2}\sec^2\theta d\theta
We know 11+x2dx=tan1x+C\int \frac{1}{1+x^2}dx = \tan^{-1}x+C.
121(x+32)2+14dx=12114tan2θ+14dx=12114sec2θ12sec2θdθ=θ+C=tan1(2x+3)+C \frac{1}{2}\int \frac{1}{ (x+\frac {\sqrt{3}}{2})^2+\frac{1}{4}}dx\\ =\frac{1}{2}\int \frac{1}{\frac{1}{4}\tan^2\theta+\frac{1}{4}}dx\\ =\frac{1}{2}\int \frac{1}{\frac{1}{4}\sec^2\theta} \frac{1}{2}\sec^2\theta d\theta \\ =\theta+C = \tan^{-1}(2x+\sqrt{3})+C
오른쪽 부분도 같은 방식으로 계산하면 된다.
121(x32)2+14dx=tan1(2x3)+C \frac{1}{2}\int \frac{1}{ (x-\frac {\sqrt{3}}{2})^2+\frac{1}{4}}dx\\ = \tan^{-1}(2x-\sqrt{3})+C
x2+1x4x2+1dx=tan1(2x+3)+tan1(2x3)+C \therefore \int\frac{x^2+1}{x^4-x^2+1} dx\\ =\tan^{-1}(2x+\sqrt{3})+\tan^{-1}(2x-\sqrt{3})+C


Check!!!

ddxtan1(2x+3)+tan1(2x3)+C=11+(2x+3)22+11+(2x3)22=24+43x+4x2+2443x+4x2=12+23x+2x2+1223x+2x2=4x2+44x44x2+4=x2+1x4x2+1 \begin{aligned} &\frac{d}{dx} \tan^{-1}(2x+\sqrt{3})+\tan^{-1}(2x-\sqrt{3})+C\\ &= \frac{1}{1+(2x+\sqrt{3})^2}2+\frac{1}{1+(2x-\sqrt{3})^2}2\\ &= \frac{2}{4+4\sqrt{3}x+4x^2}+\frac{2}{4-4\sqrt{3}x+4x^2}\\ &= \frac{1}{2+2\sqrt{3}x+2x^2}+\frac{1}{2-2\sqrt{3}x+2x^2}\\ &= \frac{4x^2+4}{4x^4-4x^2+4}\\ &= \frac{x^2+1}{x^4-x^2+1} \end{aligned}


  • 다른 솔루션. (divide by x^2)
    x2+1x4x2+1=1+1x2x21+1x2=1+1x2x22+1x2+1=1+1x2(x1x)2+1 \begin{aligned} &\frac{x^2+1}{x^4-x^2+1}= \frac{1+\frac{1}{x^2} }{x^2-1+\frac{1}{x^2}}\\ &=\frac{1+\frac{1}{x^2} }{x^2-2+\frac{1}{x^2}+1}\\ &=\frac{1+\frac{1}{x^2} }{ (x-\frac{1}{x})^2+1}\\ \end{aligned}
    u=x1xdu=(1+1x2)dxu=x-\frac{1}{x} \quad du=(1+\frac{1}{x^2}) dx

x2+1x4x2+1dx=1+1x2(x1x)2+1dx=1u2+1du=tan1u+C=tan1(x1x)+C \begin{aligned} &\int \frac{x^2+1}{x^4-x^2+1} dx\\ &=\int \frac{1+\frac{1}{x^2} }{ (x-\frac{1}{x})^2+1} dx\\ &=\int \frac{1}{u^2+1} du \\ &=\tan^{-1} {u} +C \\ &=\tan^{-1} ({x-\frac{1}{x}}) +C \end{aligned}


4. (x+ex)2dx\int (x+e^x)^2dx

(x+ex)2dx=x2+2xex+e2xdx=13x3+2xexdx+12e2x+C=13x3+2(xexexdx)+12e2x+C=13x3+2(xexex)+12e2x+C \begin{aligned} &\int (x+e^x)^2dx\\ &=\int x^2+2xe^x+e^{2x} dx\\ &=\frac{1}{3}x^3+2\int xe^x dx+\frac{1}{2}e^{2x}+C\\ &=\frac{1}{3}x^3+2(xe^x-\int e^x dx)+\frac{1}{2}e^{2x}+C\\ &=\frac{1}{3}x^3+2(xe^x- e^x)+\frac{1}{2}e^{2x}+C \end{aligned}

5. csc3xsecxdx\int \csc^3{x} \sec{x} dx

csc3xsecxdx=1sin3xcosxdx=cos2x+sin2xsin3xcosxdx=cot2x+1sinxcosxdx=cot2xsinxcosxdx+1sinxcosxdx=1sinxcosxdx+cos2xsin2xsinxcosxdx \begin{aligned} &\int \csc^3{x} \sec{x} dx \\ &= \int \frac{1}{\sin^3{x}\cos{x}} dx\\ &= \int \frac{\cos^2x+\sin^2x}{\sin^3{x}\cos{x}} dx\\ &= \int \frac{\cot^2x+1}{\sin{x}\cos{x}} dx\\ &=\int \frac{\cot^2x}{\sin{x}\cos{x}}dx+\int \frac{1}{\sin{x}\cos{x}} dx\\ &= \int \frac{1}{\sin{x}\cos{x}} dx + \int \frac{\cos^2{x}}{\sin^2{x}\sin{x}\cos{x}} dx\\ \end{aligned}
(이하는 아래 계산 과정과 동일)

1+tan2x=sec2x1+\tan^2{x}=sec^2{x}
1+cot2x=csc2x1+\cot^2{x}=csc^2{x}

csc3xsecxdx=(1+cot2x)cscxsecxdx=cscxsecx+cot2xcscxsecxdx=cscxsecxdx+cot2xcscxsecxdx=1sinxcosxdx+cos2xsin2xsinxcosxdx=cosxsinx+sinxcosxdx+cosxsin3xdx=cotxdx+tanxdx+cosxsin3xdx=lnsinxlncosx+cosxsin3xdx \begin{aligned} &\int \csc^3{x} \sec{x} dx \\ &= \int (1+\cot^2{x})\csc{x} \sec{x} dx\\ &= \int \csc{x} \sec{x} + \cot^2{x}\csc{x} \sec{x} dx\\ &= \int \csc{x} \sec{x} dx + \int \cot^2{x}\csc{x} \sec{x} dx\\ &= \int \frac{1}{\sin{x}\cos{x}} dx + \int \frac{\cos^2{x}}{\sin^2{x}\sin{x}\cos{x}} dx\\ &= \int \frac{\cos{x}}{\sin{x}}+\frac{\sin{x}}{\cos{x}} dx + \int \frac{\cos{x}}{\sin^3{x}} dx\\ &=\int \cot{x} dx + \int \tan{x} dx +\int \frac{\cos{x}}{\sin^3{x}} dx\\ &=\ln|\sin{x}| - \ln |\cos{x}|+\int \frac{\cos{x}}{\sin^3{x}} dx\\ \end{aligned}

cosxsin3xdx(u=sinxdu=cosxdx)=1u3du=12u2=12sin2x \begin{aligned} &\int \frac{\cos{x}}{\sin^3{x}} dx\\ &(u = \sin{x} \quad du = \cos{x} dx)\\ &=\int \frac{1}{u^3} du \\ &=-\frac{1}{2u^2} = -\frac{1}{2\sin^2{x}} \end{aligned}

So,
=lnsinxlncosx+cosxsin3xdx=lnsinxlncosx12sin2x+C=lnsinxlncosx12csc2x+C=12csc2x+lnsinxlncosx+C=12csc2x+lntanx+C =\ln|\sin{x}| - \ln |\cos{x}|+\int \frac{\cos{x}}{\sin^3{x}} dx\\ =\ln|\sin{x}| - \ln |\cos{x}|-\frac{1}{2\sin^2{x}}+C\\ =\ln|\sin{x}| - \ln |\cos{x}|-\frac{1}{2}\csc^2{x}+C\\ =-\frac{1}{2}\csc^2{x}+\ln|\sin{x}| - \ln |\cos{x}|+C\\ =-\frac{1}{2}\csc^2{x}+\ln|\tan{x}| +C


6. cosxsin2x5sinx6dx\int\frac{\cos{x}}{\sin^2{x}-5\sin{x}-6}dx

cosxsin2x5sinx6dx=cosx(sinx6)(sinx+1)dx(u=sinxdu=cosxdx)=1(u6)(u+1)du1(u6)(u+1)=au6+bu+1a+b=0,a6b=1,7a=1,a=17,b=17=171u6dx171u+1dx=17lnu617lnu+1+C=17lnsinx617lnsinx+1+C=17lnsinx6sinx+1+C \begin{aligned} &\int\frac{\cos{x}}{\sin^2{x}-5\sin{x}-6}dx\\ &=\int \frac{\cos{x}}{(\sin{x}-6)(\sin{x}+1)}dx\\ & (u = \sin{x} \quad du = \cos{x} dx) \\ &=\int \frac {1} {(u-6)(u+1)} du\\ & \frac {1} {(u-6)(u+1)} = \frac{a}{u-6}+\frac{b}{u+1}\\ &a+b=0, a-6b=1, 7a=1, a=\frac{1}{7}, b=-\frac{1}{7}\\ &=\frac{1}{7}\int \frac{1}{u-6}dx -\frac{1}{7}\int \frac{1}{u+1} dx \\ &=\frac{1}{7} \ln|u-6|-\frac{1}{7}\ln|u+1|+C\\ &=\frac{1}{7} \ln |\sin{x}-6|-\frac{1}{7}\ln|\sin{x}+1|+C\\ &=\frac{1}{7} \ln \big | \frac{\sin{x}-6}{\sin{x}+1} \big |+C \end{aligned}


7. 1exdx\int \frac{1}{\sqrt{e^x}} dx

1exdx=ex2dx=112ex2=2ex2=2ex+C \begin{aligned} &\int \frac{1}{\sqrt{e^x}} dx\\ &= \int e^{-\frac{x}{2}} dx \\ &= \frac{1}{-\frac{1}{2}} e^{-\frac{x}{2}}\\ &=-2e^{-\frac{x}{2}}\\ &= -\frac{2}{\sqrt{e^x}}+C \end{aligned}


8. exex1ex+3dx\int \frac{e^x \sqrt{e^x-1}}{e^x+3} dx

exex1ex+3dxu=ex1,du=121ex1exdxQ=uu2+42ex1du=2u2u2+4du=2u2+44u2+4du=214u2+4du=2[u41u2+22du]+C=2[u412arctanu2]+C=2u4arctanu2+C=2ex14arctanex12+C \begin{aligned} &\int \frac{e^x \sqrt{e^x-1}}{e^x+3} dx\\ &u=\sqrt{e^x-1}, \quad du=\frac{1}{2} \frac{1}{\sqrt{e^x-1} } e^x dx\\ Q&=\int \frac{u}{u^2+4} 2 \sqrt{e^x-1} du\\ &=2\int \frac{u^2}{u^2+4} du\\ &=2\int \frac{u^2+4-4}{u^2+4} du\\ &=2\int 1-\frac{4}{u^2+4} du \\ &=2 \left [ u-4\int \frac{1}{u^2+2^2} du \right ] +C\\ &=2 \left [ u-4 \frac{1}{2} \arctan \frac{u}{2} \right ] +C\\ &=2u-4\arctan \frac{u}{2} +C \\ &=2\sqrt{e^x-1}-4\arctan \frac{\sqrt{e^x-1}}{2} +C \\ \end{aligned}
Again…
exex1ex+3dx(u=ex1,du=exdx)Q=uu+4du(t=u,dt=12udu,du=2udt)=2t2t2+4dt=211+4t2dt=211+(2t)2dt(s=2t,t=2s,ds=2t2dt)=211+s2(t22)ds=t21+s2ds=4s21+s2ds=41s2(1+s2)ds=41s211+s2ds=41s2ds+411+s2ds=4(1)1s+4arctans+C=42t+4arctan2t+C=2t+4arctan2t+C=2u+4arctan2u+C=2ex1+4arctan2ex1+CFailWhere is Incorrect? \begin{aligned} &\int \frac{e^x \sqrt{e^x-1}}{e^x+3} dx\\ & (u=e^x-1, \quad du=e^xdx) \\ Q&=\int \frac{\sqrt{u}}{u+4} du\\ & (t = \sqrt{u} , \quad dt = \frac{1}{2\sqrt{u}} du, du=2\sqrt{u}dt) \\ &=2\int \frac{t^2}{t^2+4} dt =2\int \frac{1}{1+\frac{4}{t^2}} dt=2\int \frac{1}{1+(\frac{2}{t})^2} dt\\ &(s=\frac{2}{t}, t=\frac{2}{s} , ds =-\frac{2}{t^2}dt )\\ &=2\int \frac{1}{1+s^2} (-\frac{t^2}{2}) ds \\ &=-\int \frac{t^2}{1+s^2} ds =-\int \frac{\frac{4}{s^2}}{1+s^2} ds\\ &=-4\int \frac{1}{s^2(1+s^2)}ds =-4\int \frac{1}{s^2}-\frac{1}{1+s^2} ds \\ &=-4\int\frac{1}{s^2} ds+4 \int \frac{1}{1+s^2} ds \\ &=-4(-1)\frac{1}{s}+4 \arctan{s} +C \\ &=\frac{4}{\frac{2}{t}} + 4 \arctan{ \frac{2}{t} } +C =2t + 4 \arctan \frac{2}{t} +C \\ &= 2 \sqrt{u} + 4 \arctan \frac{2}{\sqrt{u}} +C\\ &= 2 \sqrt{e^x-1} + 4 \arctan \frac{2}{\sqrt{e^x-1}} +C\\ \end{aligned} \\Fail\\ \text{Where is Incorrect?} \\

Where is incorrect?? … No. It’s all right.
arctan1x=π2arctanx,(x>0) \arctan{\frac{1}{x}} = \frac{\pi}{2}-\arctan{x} ,(x>0)
So, Integration constant is ignored.

=2ex1+4arctan2ex1+C=2ex1+4(π2arctanex12)+C=2ex14arctanex12+2π+C=2ex14arctanex12+C2 \begin{aligned} &= 2 \sqrt{e^x-1} + 4 \arctan \frac{2}{\sqrt{e^x-1}} +C\\ &= 2 \sqrt{e^x-1} + 4 ( \frac{\pi}{2}-\arctan \frac{\sqrt{e^x-1}}{2}) +C\\ &= 2 \sqrt{e^x-1} - 4\arctan \frac{\sqrt{e^x-1}}{2}+2\pi +C\\ &= 2 \sqrt{e^x-1} - 4\arctan \frac{\sqrt{e^x-1}}{2} +C_2\\ \end{aligned}


9. 1x+xdx\int \frac{1}{x+\sqrt{x}} dx

1x+xdx(t=x,t2=x,dt=12xdx)=1t2+t2xdt=2tt2+tdt=211+tdt=2ln1+t+C=2ln1+x+C \begin{aligned} &\int \frac{1}{x+\sqrt{x}} dx\\ & (t=\sqrt{x}, t^2=x, dt=\frac{1}{2\sqrt{x}}dx)\\ &=\int \frac{1}{t^2+t}{2\sqrt{x}}dt=\int \frac{2t}{t^2+t}dt\\ &=2\int \frac{1}{1+t}dt=2\ln|1+t|+C\\ &=2\ln|1+\sqrt{x}|+C \end{aligned}


10. 15x3dx\int_{-1}^{5}|x-3| dx

15x3dx=13x3dx+35x3dx=133xdx+35x3dx=[3xx22]13+[x223x]35=(992)(312)+(25215)(929)=92+7252+92=10 \begin{aligned} &\int_{-1}^{5}|x-3| dx \\ &=\int_{-1}^{3} |x-3|dx + \int_{3}^{5} |x-3| dx\\ &=\int_{-1}^{3} 3-x dx + \int_{3}^{5} x-3 dx\\ &=\left[ 3x-\frac{x^2}{2} \right]_{-1}^{3} + \left[ \frac{x^2}{2}-3x \right]_{3}^{5} \\ &=(9-\frac{9}{2})-(-3-\frac{1}{2})+(\frac{25}{2}-15)-(\frac{9}{2}-9)\\ &=\frac{9}{2}+\frac{7}{2}-\frac{5}{2}+\frac{9}{2}\\ &=10 \end{aligned}

Author: crazyj7@gmail.com

'Math' 카테고리의 다른 글

Integral100 [21-30]  (1) 2019.10.15
Integral100 [11-20]  (0) 2019.10.13
integral ln gamma  (0) 2019.08.01
integral ln sin  (0) 2019.08.01
Gaussian integration  (0) 2019.07.26
반응형
DOSBatch

DOS Batch

윈도우 커맨드에서 실행하는 DOS 스크립트 작성 방법. 쉽지만 막상 필요한 것을 하고 싶을 때 쉽지만은 않다. 자료가 많이 부족하다.

주석

  • 주석 명령은 설명문으로 실행되지 않는다.
  • rem 으로 실행하고 뒤에 주석문(아무 스트링)을 입력하면 된다. 주석은 프로그래밍시에 간략한 설명을 위한 것이다.
  • @rem test message… : 앞에 @를 붙이면 배치파일 실행시 rem 커맨드 출력이 안되도록 한다. 물론 그 전에 @echo off을 해 두었다면 @을 붙일 필요없다.
  • 더 간단하게는 :: 으로 시작하면 주석이 된다. 이것은 커맨드 출력도 되지 않아 더 간편히 사용할 수 있다. rem과 다르게 아예 없는 것으로 취급된다.

변수와 출력

  • dos batch는 파일 확장자를 .bat 또는 .cmd로 하여 메모장으로 텍스트 파일로 작성하면 된다.
  • 기본 적인 출력은 “echo” 커맨드가 있다. 뒤에 출력할 내용을 적으면 된다.
  • 출력 내용에 변수명을 적어 변수값을 출력할 수 도 있다. 또한 변수중에는 미리 시스템에서 정의된 값들도 있어서 유용하다.
  • 변수 설정은 set으로 변수이름과 값을 =으로 할당한다.
  • 변수 사용시에는 변수 이름 앞뒤로 %를 붙인다. 변수 삭제는 빈 값을 할당한다. (빈 값이 있는 변수로 만드는 것이 아니라 변수 자체를 삭제한다는 의미!)

SET FOO=hello world
echo %FOO%
echo %FOO%xxx%FOO%
SET FOO=

  • for문의 변수 이름은 커맨드창에서 바로 실행할 때 영문자앞에 %를 붙인다. 그러나, Dos batch file(.bat)에서 for문의 변수 영문자 앞에 %% 이렇게 %를 두 개 붙인다!
c:\> copy con test1.bat
@echo off
@rem this is a test batch...
set aaa=hello
echo %aaa%
echo %1
^Z
c:\> test1 kim
hello
kim
  • @echo off는 이후에 echo 실행명령은 출력하지 않고, 결과만 출력하도록 한다.

  • batch 파일 실행시 뒤에 파라미터를 줄 수 있는데, 순서대로 %1, %2, … 이렇게 변수로 사용할 수 있다.

  • 줄바꿈. 엔터 입력. 빈 줄 출력

echo.

  • 공백으로 시작하는 문자열 출력

echo. aaa
echo aaa (이것도 이제는 가능함. 앞에 공백 두 개)

  • 특수 문자 출력시 앞에 ^를 사용

echo ^< 이것은 꺾은 괄호 ^>
echo ^| 파이프
echo ^^ 두 개 입력시 하나 출력

스트링 처리

  • 문자열 추출 mid / substr

FOO 변수의 값에서 인덱스 6부터 3글자를 추출. (인덱스는 0부터 시작) 뒤에 수를 생략하면 끝까지를 의미함. -1은 마지막 바로 한글자를 의미.
set BAR=%FOO:~6,3%
set BAR=%FOO:~5%
set BAR=%FOO:~-3% : FOO가 파일명일떄 마지막 세글자(확장자명)을 가져온다.

연산

  • 수 값을 할당하거나 연산하려면 SET /a를 사용한다.

set /a num=4*8+8/2+122
set /a num=1
set /a num+=2
if %num% GEQ 3 echo big

환경 변수

%CD% : 현재 작업 디렉터리
%DATE% : date 커맨드와 같은 포맷의 날짜
%TIME%
%RANDOM% : 0~32767 범위의 수
%ERRORLEVEL%
%CMDCMDLINE%

파라미터

  • 파라미터는 %1, %2, 등으로 받는다. (%0은 배치파일 이름 자체임. %9까지 가능)
  • %*은 모든 파라미터를 의미함.
  • 파리미터 내부에 공백이 있으면 커맨드상에서 파라미터를 "로 둘러싼다. 단, 스크립트에서 "를 제거하고 받으려면 %~1, %~2 로 받는다.
  • 파라미터가 없으면 종료

if “%1” == “” goto :eof
파라미터에 "를 추가해 주어야 한다.’

Redirect

  • stderr까지 파일로 기록

cmd /c “test.exe” > “output.txt” 2>&1

  • 실행만 하고 출력은 없앰 (no output)

dir > nul
nul 이라는 파일은 생성되지 않는다. (NUL 대소문자 상관없음. 주의! L이 한 개임.)

type nul > a
0바이트짜리 a라는 파일 생성

program 2>output.txt
stderr 출력을 파일로 기록

배치내에서 배치 실행하기

call b.bat param1 param2

  • 동시 실행

start /d “directory…” /b program.exe
start /d “directory…” /b program.exe

디렉터리 경로명 이동

cd /d e:\temp

반복문 for

  • integer 증가

for /L %%n in (1,1,100) do net user %%n /add
1부터 100까지 증가하고, 숫자로 계정명으로 사용자를 추가한다.
(for의 변수는 커맨드로 실행시에는 %하나 batch file인 경우는 %% 두개를 사용한다.)

  • 1부터 5까지 출력

for /L %n in (1,1,5) do echo %n

  • 1부터 5까지 출력. 2씩 건너뜀.

for /L %n in (1,2,5) do echo %n
1,3,5 각각 한 줄로 출력됨.

goto

  • 종료시

goto :eof 또는 goto:eof
eof 레이블은 만들필요없이 미리정의된 거라 그대로 사용 가능
또는 exit /b 0

  • 레이블 지정과 goto

레이블 지정시에는 앞에 :을 붙이고 goto 시에는 :를 빼야 한다.
:loop
echo infinite…
goto loop

Sleep

@rem 3sec sleep
@ping 1.2.3.4 -n 1 -w 3000 > NUL

IF

  • 조건 판단
  • 같은지 확인 == 앞 뒤에 공백은 없어도 됨.

if %var% == 1 goto done
echo a
:done
echo b

  • if else : 괄호, 공백 주의

if %var% == 0 (
echo a
) else (
echo b
)

  • /i 옵션 : 대소문자 구분 없이 비교. (case-insensitive)

사용자 입력/텍스트파일변수

  • yn 선택지 (or 스트링 입력)

set /p result=message (Y/N)?
echo %result%
빈 값을 검사하려면 아래 코드를 참고

@echo off
:: init var for empty string.
set "result="
set /p result=are you ok(y/n)?
if "%result%" == "" (
echo no input
goto :eof
)
if /i "%result%"=="y" goto YES
if /i "%result%"=="n" goto NO

echo your input is %result%

  • 텍스트 파일을 첫 행을 읽어 변수에 할당

set /p var=<%temp%\filename.txt

> copy con lines.txt
hello1
hello2
hello3
^Z
> set /p var=<lines.txt
> echo %var% %var%
hello1 hello1

디렉터리

  • 중간 디렉터리까지 모두 생성. mkdir 대신 md를 사용

md “a\b\c”

  • 하위 파일/디렉터리 모두 삭제. /s 옵션

rmdir /s “dirname”

기타

  • 종료 : exit

exit /b 0 : /b는 cmd창은 남겨둔다는 의미. 뒤의 숫자는 프로그램 종료 리턴값. (다른 배치에서는 이 값을 errorlevel 변수로 받아 사용할 수 있다.)

  • 파일 병합 / 붙이기 concate
  • 파일 세 개를 붙여서 하나의 파일로 만든다.

copy 1.txt + 2.txt + 3.txt out.new /b

  • 배치 파일에서 다른 배치 파일 실행하기

call b.bat : call을 사용한다. 그냥 b.bat로 실행하면? b.bat가 종료시 나머지 스크립트로 돌아오지 않고 종료된다.

Author: crazyj7@gmail.com
Written with StackEdit.

'Develop > Windows' 카테고리의 다른 글

커맨드(cmd)창 관리자권한 실행  (1) 2019.10.23
Windows10 IP Change command line  (0) 2019.10.23
curl 사용법/HTTP 테스트  (0) 2019.10.01
화면/윈도우 동영상 녹화 (mp4, gif)  (0) 2019.09.23
windows 10 kernel structure  (0) 2015.08.28
반응형

외국에서 작성된 외부 패키지를 받아 실행할 때 가끔가다 인코딩 에러로 실행이 안되는 경우가 왕왕 있다. (보통은 한글 윈도우 환경에서 발생한다.)

이럴 때 간단하게 해결할 수 있는 방안이 있다.

PYTHON이 디폴트로 UTF8로 작동하도록 설정하는 것이다. (python 3.7에서 지원)

환경 변수 PYTHONUTF8을 만들어 1로 설정해 주면 된다.

SET PYTHONUTF8=1

아래는 그 예이다. 에러 메시지가 나오던 것이 환경변수 설정 후, 정상 동작하였다.

pythonutf8

'Python' 카테고리의 다른 글

크롤링(Crawl) 2편  (2) 2019.10.27
웹 크롤링 Crawl 1편  (0) 2019.10.24
ipynb와 py 양방향 전환  (2) 2019.09.30
ipynb 노트북 파일 형상관리  (1) 2019.09.27
초간단 python 서버만들기2  (0) 2019.09.25

+ Recent posts