배치 파일에서 빈 텍스트 파일을 만드는 방법은 무엇입니까?


244

BAT 파일을 사용하여 MSDOS에서 빈 파일을 작성하는 명령이 무엇인지 기억할 수 있습니까?


3
또한 stackoverflow.com/questions/1702762 , "명령 줄에서 빈 파일을 만드는 방법은 무엇입니까?"
Peter Mortensen

6
DOS를 혼동하지 않고 cmd.exe있습니다.
사용자가 알 수 없음

읽어보기 : Set-Content "your_file.txt" .gitignore -Encoding utf8대소 문자를 구분하며 utf8 인코딩을 강제합니다! (나는 또한 이것을 답변으로 게시했습니다).
Wolfpack'08

답변:


235
echo. 2>EmptyFile.txt

49
이것은 stdout에 줄 바꿈을 반영하지만 내 대답은 그렇지 않습니다.
ephemient

7
때로는 관련이 있습니다. 나는 0 바이트 파일을 얻기 위해 NUL (또는 NUL> 파일 형식)을 복사 할 때까지 거짓말을했습니다. :-)
Joey

18
병합 ephemient의 답변이 하나에, 당신은 할 수있는 "에코> NUL 2> EmptyFile.txt."줄 바꿈 출력하지 않고 동일한 결과를 달성하기 위해
cmptrgeekken

7
.echo.
닌 팜

3
@Reegan을 사용 echo 2하지 않고 사용 .하면 콘솔에 "ECHO is off"가 표시됩니다. 를 사용 echo. 2하면 줄 바꿈 만 표시하여 콘솔 출력을 효과적으로 침묵시킵니다.
OneManBand

362
NUL EmptyFile.txt 복사

DOS에는 모든 디렉토리에 존재하는 몇 가지 특수 파일 (실제로 장치)이 있으며 NULUNIX와 동일합니다 /dev/null. 항상 비어있는 마법 파일이며 사용자가 작성한 것을 버립니다. 다음 은 다른 것들 의 목록 입니다. CON때로는 유용합니다.

출력을 전혀 피하기 위해 다음을 사용할 수 있습니다.

복사 / y NUL EmptyFile.txt> NUL

/y방지 copy출력에 갈 때 당신이 볼 수없는 질문에서 NUL.


36
+1-질문에 파일이 표시되므로 허용되는 답변이 잘못되었습니다.
Joe

9
DannySmurf의 솔루션은 실제로 빈 파일을 만듭니다. 줄 바꿈은 stdout으로 가고 stderr에는 아무것도 없습니다 (새 파일로 지정됨). 그러나 어쨌든 +1 주셔서 감사합니다
ephemient

2
nul> EmptyFile.txt 유형이 가장 짧은 솔루션입니다. 여전히 귀하의 답변이 해결책보다 낫습니다. 파일이 실제로 비어있게하십시오. +1
TPAKTOPA

3
경고 : 예, 빈 파일을 만드는 방법에 대한 질문이지만 일반적으로 "파일이 있는지 확인하십시오". copy /Y NUL명령을 사용하면 기존 내용이 지워질 수 있습니다. 유닉스의 touch명령에 익숙하다면 , 이것은 당신이 기대하는 것이 아닐 수도 있습니다.) type NUL >> emptyfile.txt이와 관련 하여 사용하는 것이 더 안전합니다.
eckes

CON이 답변에 연결된 정보를 제외하고 에 대한 정보를 찾을 수 없습니다 . 누군가가 약간의 독서를 공유 할 수 있습니까?
Sinjai

182
type NUL > EmptyFile.txt

이전 두 개의 게시물을 읽은 후이 두 가지의 혼합이 내가 생각 해낸 것입니다. 좀 더 깨끗해 보입니다. "복사 된 1 개의 파일"을 리디렉션하는 것에 대해 걱정할 필요가 없습니다. 메시지 NUL는 이전 게시물과 마찬가지로 ECHO OutputLineFromLoop >> Emptyfile.txt배치 파일에서 일반적으로 다음에 표시됩니다.


13
+1 이것은 stderr와의 관계가 아닌, 처음 떠오르는 자연적인 것입니다.
Amit Naidu

2
당신이 올바른지. 이 방법은 copy 명령에서 / y 플래그를 피합니다.
djangofan

짧고 쉽습니다. 여기에 몇 가지 다른 솔루션은 0 바이트의 새 파일을 만들지 않습니다!
Christian St.

66

다른 답변에서 수집 한 기술 :

0 바이트 파일 을 매우 명확하고 역 호환 가능한 방식으로 만듭니다 .

type nul >EmptyFile.txt

아이디어를 통해 : anonymous , Danny Backett , 아마도 JdeBP의 작업에서 영감을 얻은 다른 사람들

다른 방법으로 0 바이트 파일 은 이전 버전과 호환됩니다.

REM. >EmptyFile.txt

아이디어를 통해 : Johannes

하위 호환성을 보이는 0 바이트 파일 도 다음과 같습니다.

echo. 2>EmptyFile.txt

통해 아이디어 : TheSmurf

0 바이트는 체계적인 방법으로 파일 아마 윈도우 2000부터 사용할 수를 :

fsutil file createnew EmptyFile.txt 0

아이디어를 통해 : EMM

읽기 전용 파일을 덮어 쓰는 0 바이트 파일

ATTRIB -R filename.ext>NUL
(CD.>filename.ext)2>NUL

통해 아이디어 : copyitright

단일의 개행 (2 바이트 : 0x0D 0x0A진수 표기 , 대안으로 기록 \r\n)

echo.>AlmostEmptyFile.txt

: 참고 아무 사이의 공간을 echo, .하고 >.

아이디어를 통해 : 배치 파일에서 줄 바꿈을 어떻게 에코 할 수 있습니까?


편집 파일로 경로 재 지정된 유효하지 않은 명령 은 빈 파일을 작성하는 것으로 보입니다 . 허, 기능! 호환성 : 알려진

TheInvisibleFeature <nul >EmptyFile.txt

0 바이트 파일 : 임의의 이름을 가진 유효하지 않은 명령 / (호환성 : uknown) :

%RANDOM%-%TIME:~6,5% <nul >EmptyFile.txt

통해 : Hung Huynh에 의해 무작위로 좋은 소스

편집 2 Andriy M 은 유효하지 않은 명령을 통해 이것을 달성하는 가장 재미 있고 자극적 인 방법을 지적합니다

0 바이트 파일 : 유효하지 않은 명령 / 펑키 방식 (호환성 : 알 수 없음)

*>EmptyFile.txt

통해 아이디어 : Andriy M

네 번째 방법으로 0 바이트 파일 :

break > file.txt

를 통해 아이디어 : foxidrive 감사합니다 코멘트더블 그라 !


그건 type nul ...아니, type <nul ...사실.
Andriy M

@AndriyM 편집 해 주셔서 감사합니다. 흥미롭게도 잘못된 것으로 작동하기 때문에 알지 못했습니다. 이는 파일 이름으로 리디렉션 된 잘못된 명령이 빈 파일을 생성한다는 것을 의미 할 수 있습니다! 그냥 시도 NonExistentCommand <nul >EmptyFile.txt하고 작동
n611x007

"유효하지 않은"것으로 예상되는 하드 코딩 된 명령 이름에 의존하는 것이 안전하지 않으므로 임의의 명령 이름 옵션
n611x007

2
또 다른 하나 : break > file.txt소품 foxidrive
Gras Double

3
그리고 대부분의 명령을 사용할 수 있습니다 >>(유닉스처럼 당신이 "존재해야하지만, 존재하는 경우 절단되어서는 안된다"필요하다면 touch않습니다)
eckes

25

REM. > empty.file


Windows CE에 갇혀 있으며 파일을 만들고 비울 수있는 유일한 대답입니다! 다른 접근법은 빈 줄을 추가하거나 단순히 작동하지 않습니다 ...
AntonyG

이 솔루션의 유일한 문제점은 현재 디렉토리에 REM이라는 파일이 있고을 입력 REM.하면 cmd가 " 'rem"으로 응답한다는 것입니다. 내부 또는 외부 명령, 실행 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. "
DodgyCodeException

@DodgyCodeException, rem/대신에 rem.를 사용하면 문제가 해결됩니다.
aschipfl

@aschipfl 감사합니다. 흥미 롭습니다. 2010 년의이 답변이 몇 년 동안 서로 의견이 어긋나는 방식도 흥미 롭습니다. 느린 대화!
DodgyCodeException

8

작성 될 파일이 이미 존재하고 읽기 전용 일 가능성이있는 경우 다음 코드를 사용하십시오.

ATTRIB -R filename.ext
CD .>filename.ext

파일이 없으면 간단히 다음을 수행하십시오.

CD .>filename.ext

(DodgyCodeException의 의견에 따라 코드가 업데이트되거나 변경됨)

발생할 수있는 오류를 억제하려면 :

ATTRIB -R filename.ext>NUL
(CD .>filename.ext)2>NUL

1
이 솔루션의 유일한 문제점 CD은 현재 디렉토리에 (확장자 없음) 이라는 파일이 CD.있고을 입력하면 cmd가 " 'CD"로 응답한다는 것입니다. 내부 또는 외부 명령, 실행 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. " 대신 CD .점 앞에 공백을 입력 하면 작동합니다.
DodgyCodeException


7

짧고 달콤한 타이핑-책에 추가 할 하나 더.

break>file.txt
break>"file with spaces in name.txt"

나는 우리가 따옴표를 건너 뛰어야한다고 생각한다
Nam G VU

@NamGVU 공백이나 &와 같은 긴 파일 이름 요소를 사용하도록 선택한 경우 따옴표는 대상 파일 이름에 사용됩니다. 파일 내용의 일부가 아닙니다.
foxidrive

예, 동의합니다 ^^ 논의한대로 업데이트 할 수있는 권한입니다.
Nam G VU

@NamGVU 따옴표는 긴 파일 이름을 사용하거나 사용하지 않고 그대로 둘 수 있습니다. 짧은 파일 이름으로 명령 줄에서 입력하면 불필요한 입력을 원하지 않을 것입니다.
foxidrive

이 답변에서 두 번째 줄을 제거하는 것이 좋습니다. IMO 이것은 지금까지 질문에 대한 가장 좋은 대답이지만, 두 번째 줄은 그것을 사용하려는 사람이 명령 줄의 공백 처리 기본 사항을 모르는 경우 실제로 가치를 추가하지 않습니다.
kayleeFrye_onDeck

2

TYPE대신 명령을 사용할 수 있습니다 COPY. 이 시도:

TYPE File1.txt>File2.txt

File1.txt비어있는 곳 .


3
당신도 할 수 있습니다type NUL>File2.txt
Danny Beckett

6
BTW, File1.txt를 얻는 방법?
TomeeNS

1

다음과 같이 SETbyte파일 을 작성하는 데 사용할 수도 있습니다.

set x=x > EmptyFile.txt

또는 추가 변수를 만들지 않으려면 다음과 같이 기존 변수를 다시 할당하십시오.

set PROMPT=%PROMPT% > EmptyFile.txt

또는 이와 같이 :

set "PROMPT=%PROMPT%" > EmptyFile.txt

0

무한한 접근 방식이 있습니다.

아무것도 출력하지 않는 명령 :

break
cls
color
goto
pushd
popd
prompt
title

이상한 명령 :

CD.
REM.
@echo off
cmd /c
START >FILE

오래된 print명령은 빈 파일을 생성합니다.

print /d:EMPTY_TEXT_FILE nul

-2

가장 쉬운 방법은 다음과 같습니다.

echo. > Filename.txt


8
공백 문자가 아닌 캐리지 리턴 문자와 줄 바꾸기 문자 가있는 파일이 만들어집니다 (빈 파일이 아님) .
Andriy M

인코딩을 변경하기 때문에 내 답변 (아래)을 살펴볼 가치가 있습니다.
Wolfpack'08

-3

중대한:

인코딩을 설정하지 않으면 많은 소프트웨어가 손상 될 수 있습니다. git은 매우 인기있는 예입니다.

Set-Content "your_ignore_file.txt" .gitignore -Encoding utf8 이것은 대소 문자를 구분 하며 utf8 인코딩을 강제합니다!


3
파일 을 만드는 데 인코딩이 어떤 관련이 있습니까? 널 바이트 파일은 인코딩이 필요하지 않으며 BOM (0 바이트)으로 표시하기 까다 롭습니다.
jeb

@jeb 사람들은 빈 파일을 채우고 채워진 파일이 설정 파일로 사용될 때 UTF8이 아닌 경우 오류를 생성합니다. 사실, 사람들은 거의 항상 파일을 채우고 비워 두지 말고 나중에 다른 파일을 사용하여 빈 파일을 만들기 위해 나중에 다른 파일을 만들지 않을 것이라고 말합니다. UTF8입니다. 예를 들어, github의 .git 튜토리얼은 나중에 채워지는 빈 파일을 만들도록 요청하고 다른 방법은 이상한 Windows 인코딩으로 파일을 만듭니다.
Wolfpack'08
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.