Tuesday, November 14, 2006
배치파일(.BAT)로, 파일 출력, 텍스트 파일(Text File) 만드는 방법
배치 파일의 문법 자체에는 파일 저장 함수 같은 것이 없지만, "재지향(Redirection)"을 사용하면, 배치 파일로도 파일을 만들고 저장할 수 있습니다.
* 우선 echo 명령으로 화면에 어떤 문자열을 출력한 후,
* 그 문자열을 재지향하여 파일로 저장하면, 하드의 현재 디렉토리에 파일이 만들어집니다.
배치로, Foo.java 라는 자바 소스 파일을 자동으로 만드는 예제입니다.
파일명: 0.bat
위의 배치 파일을 실행하면, 하드에 다음과 같은 내용의 텍스트 파일이 저절로 생성됩니다.
만들어진 파일의 이름: Foo.java
echo 문자열> Foo.java
Foo.java 라는 파일을 만들어서, 문자열 출력을 저장하라는 뜻. (Foo.java 라는 파일이 이미 있다면 덮어쓰게 됨)
echo 문자열>> Foo.java
Foo.java 라는 파일에 "계속 이어서" 문자열 저장. >> 기호는, 이미 존재하는 파일에 이어서 쓰는 것입니다. > 기호가 1개라면 덮어쓰게 됩니다.
echo.>> Foo.java
Foo.java 파일에 빈 줄을 한 줄 만들기
그런데 재지향으로 저장할 수 없는 특수 기호들이 있습니다.
<
>
^
이런 기호들은 재지향이 되지 않고, >은(는) 예상되지 않았습니다. 또는 지정된 파일을 찾을 수 없습니다. 같은 에러가 나게 됩니다. 운영체제에서 특수한 의미로 사용되기 때문입니다. 이런 기호를 파일로 저장하려면 그 기호 바로 앞에 캐럿(^) 기호를 붙여야 합니다. 캐럿 자체를 출력하려면 캐럿을 2개 연속으로 쓰면 됩니다.
그런데 위의 예제가 너무 복잡해서, 간단한 예제를 하나 만들었습니다.
위의 배치 코드를 실행하면, 하드에 out.txt 라는 파일이 만들어지고 다음과 같은 내용이 들어 있습니다:
* 우선 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
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("테스트");
}
}
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
echo 안녕하세요> out.txt
echo 반갑습니다>> out.txt
echo 안녕히 가세요>> out.txt
위의 배치 코드를 실행하면, 하드에 out.txt 라는 파일이 만들어지고 다음과 같은 내용이 들어 있습니다:
안녕하세요
반갑습니다
안녕히 가세요
반갑습니다
안녕히 가세요
tag: batch
배치파일 | DOS CMD BATCH .BAT | VBScript .VBS
안녕하세여. 그렇다면 기존에 텍스트 파일이 있고 맨 마지막 줄에 자기가 원하는 텍스트를 넣으려면 어떻게 해야하나요??? 감사합니다.
맨 처음의 >를 >>로 바꾸시면 됩니다.
@echo off
echo 안녕하세요>> out.txt
echo 반갑습니다>> out.txt
echo 안녕히 가세요>> out.txt
<< Home