컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Tuesday, November 14, 2006

배치파일(.BAT)로, 파일 출력, 텍스트 파일(Text File) 만드는 방법


배치 파일의 문법 자체에는 파일 저장 함수 같은 것이 없지만, "재지향(Redirection)"을 사용하면, 배치 파일로도 파일을 만들고 저장할 수 있습니다.

* 우선 echo 명령으로 화면에 어떤 문자열을 출력한 후,

* 그 문자열을 재지향하여 파일로 저장하면, 하드의 현재 디렉토리에 파일이 만들어집니다.


.BAT으로 파일 만들기 예제


배치로, Foo.java 라는 자바 소스 파일을 자동으로 만드는 예제입니다.
파일명: 0.bat
@echo off

echo /*    ^< ㅎㅎ ^>    */> Foo.java
echo.>> Foo.java
echo public class Foo {>> Foo.java
echo   public static void main(String[] args) {>> Foo.java
echo     System.out.println("테스트");>> Foo.java
echo   }>> Foo.java
echo }>> Foo.java
echo.>> Foo.java

위의 배치 파일을 실행하면, 하드에 다음과 같은 내용의 텍스트 파일이 저절로 생성됩니다.

만들어진 파일의 이름: Foo.java
/*    < ㅎㅎ >    */

public class Foo {
  public static void main(String[] args) {
    System.out.println("테스트");
  }
}



코드 설명


echo 문자열> Foo.java
Foo.java 라는 파일을 만들어서, 문자열 출력을 저장하라는 뜻. (Foo.java 라는 파일이 이미 있다면 덮어쓰게 됨)


echo 문자열>> Foo.java
Foo.java 라는 파일에 "계속 이어서" 문자열 저장. >> 기호는, 이미 존재하는 파일에 이어서 쓰는 것입니다. > 기호가 1개라면 덮어쓰게 됩니다.


echo.>> Foo.java
Foo.java 파일에 빈 줄을 한 줄 만들기



주의점


그런데 재지향으로 저장할 수 없는 특수 기호들이 있습니다.

<
>
^

이런 기호들은 재지향이 되지 않고, >은(는) 예상되지 않았습니다. 또는 지정된 파일을 찾을 수 없습니다. 같은 에러가 나게 됩니다. 운영체제에서 특수한 의미로 사용되기 때문입니다. 이런 기호를 파일로 저장하려면 그 기호 바로 앞에 캐럿(^) 기호를 붙여야 합니다. 캐럿 자체를 출력하려면 캐럿을 2개 연속으로 쓰면 됩니다.






그런데 위의 예제가 너무 복잡해서, 간단한 예제를 하나 만들었습니다.

@echo off

echo 안녕하세요> out.txt
echo 반갑습니다>> out.txt
echo 안녕히 가세요>> out.txt

위의 배치 코드를 실행하면, 하드에 out.txt 라는 파일이 만들어지고 다음과 같은 내용이 들어 있습니다:

안녕하세요
반갑습니다
안녕히 가세요





tag: batch
배치파일 | DOS CMD BATCH .BAT | VBScript .VBS

2 Comments:
At July 27, 2010 at 7:38 AM, Blogger Unknown said...

안녕하세여. 그렇다면 기존에 텍스트 파일이 있고 맨 마지막 줄에 자기가 원하는 텍스트를 넣으려면 어떻게 해야하나요??? 감사합니다.

 
At July 27, 2010 at 7:53 AM, Blogger mwultong said...

맨 처음의 >를 >>로 바꾸시면 됩니다.

@echo off

echo 안녕하세요>> out.txt
echo 반갑습니다>> out.txt
echo 안녕히 가세요>> out.txt

 

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top