Windows의 명령 줄에서 빈 파일을 만드는 방법은 무엇입니까?


494

DOS / Windows 명령 행에서 빈 파일을 작성하는 방법은 무엇입니까?

나는 시도했다 :

copy nul > file.txt

그러나 항상 파일이 복사되었음을 표시합니다.

표준 cmd에 다른 방법이 있습니까?

Cygwin 의 터치 명령이나 다른 비표준 명령이 필요하지 않은 방법이어야 합니다. 키 입력을 사용할 수 없도록 스크립트에서 명령을 실행해야합니다.


빈 파일 (0 바이트)을 생성하는 실제 배치 명령을 찾았습니다. 내 답변을 업데이트했습니다.
VonC

3
중복 : stackoverflow.com/questions/210201 , "배치 파일에서 빈 텍스트 파일을 작성하는 방법?" (그러나 IMHO, 여기에 답이 더 낫습니다.)
Peter Mortensen

예, "1 개의 파일이 복사되었습니다."라는 텍스트가있는 copy nul> file.txt 명령이 작성됩니다. 빈 파일이 생성되지 않습니다.
Ripon Al Wasim 2018 년

5
이것은 하나의 명령으로 일반 빈 파일을 만들 수 없으면 MS-DOS가 쓰레기임을 증명합니다.
Kolob Canyon

2
@KolobCanyon : 물론 이미 게시 된 답변에 따라 수 있습니다. 그러나 빈 파일을 빠르게 생성하는 기능이 최종 사용자를 대상으로하고 16K RAM에서 실행해야하는 운영 체제의 우선 순위 여야한다고 생각하십니까? 드문 경우를 제외하고는 특히 유용한 일이 아닙니다.
Harry Johnston

답변:


571

없이 재, 루크 데자뷰 또는 에릭 Konstantopoulos는 지적 밖으로 합니다 :

copy NUL EMptyFile.txt
copy /b NUL EmptyFile.txt

" 배치 파일에서 빈 텍스트 파일을 만드는 방법? "(2008)은 다음을 가리 킵니다.

type NUL > EmptyFile.txt
# also
echo. 2>EmptyFile.txt
copy nul file.txt > nul # also in qid's answer below
REM. > empty.file
fsutil file createnew file.cmd 0 # to create a file on a mapped drive

Nomad독창적 인 것을 언급 합니다 :

C:\Users\VonC\prog\tests>aaaa > empty_file
'aaaa' is not recognized as an internal or external command, operable program or batch file.

C:\Users\VonC\prog\tests>dir

 Folder C:\Users\VonC\prog\tests

27/11/2013  10:40    <REP>          .
27/11/2013  10:40    <REP>          ..
27/11/2013  10:40                 0 empty_file

같은 정신으로 사무엘 은 다음 과 같이 논평합니다 .

내가 사용하는 가장 짧은 것은 기본적으로 Nomad의 것입니다.

.>out.txt

오류가 발생합니다.

'.' is not recognized as an internal or external command

그러나이 오류는 stderr에 있습니다. 그리고 >단지 표준 출력, 리디렉션 아무것도 생성되지되어 있습니다.
따라서 파일을 만듭니다. 여기서 오류 메시지는 무시해도됩니다.


(원래 답변, 2009 년 11 월)

echo.>filename

( echo ""실제로 파일에 ""를 넣을 것입니다! echo'.'없이 파일 에 " Command ECHO activated"를 넣을 것입니다 ...)

참고 : 결과 파일은 비어 있지 않지만 리턴 라인 순서 (2 바이트)를 포함합니다.


토론 은 실제 파일에 대한 진정한 배치 솔루션을 가리 킵니다 .

 <nul (set/p z=) >filename

 dir filename
 11/09/2009  19:45                 0 filename
 1 file(s)                         0 bytes

" <nul" nulset/p명령에 대한 응답을 파이프하여 사용 된 변수가 변경되지 않도록합니다. 에서와 마찬가지로 set/p등호 오른쪽에있는 문자열은 CRLF없이 프롬프트로 표시됩니다.

여기서 "등호 오른쪽의 문자열"은 비어 있으므로 결과는 빈 파일입니다.


cd. > filename( Patrick Cuff의 답변 에서 언급 하고 0 바이트 길이의 파일을 생성하는)과 의 차이점 은이 "리디렉션 비트"( <nul...트릭)를 사용하여 CR없이 라인에코 하는 데 사용할 수 있다는 것입니다 .

<nul (set/p z=hello) >out.txt
<nul (set/p z= world!) >>out.txt
dir out.txt

dir11 바이트로 명령은 파일 크기를 표시해야합니다 : " helloworld!".


2
echo.>filename공백과 개행 문자를 포함하기 때문에 실제로 원할 것입니다.
Agent_9191

1
rem명령을 사용하면 빈 줄이있는 파일을 만들지 않아도됩니다.
Greg Hewgill

@ Agent_9191 : 사실, 답변을 업데이트했습니다. @Greg : 무슨 뜻인지 잘 모르겠습니다 : rem>filename같은 결과를냅니다 (2 바이트)
VonC

3
누팔 이브라힘 (Nufal Ibrahim) 훨씬 쉽고 동등하게 작동하는 다음 답변을 참조하십시오. 여기서 수행 한 것은 첫 번째 경우 (비어 있지 않지만 줄 바꿈 포함)에서 부분적으로 잘못되었으며 두 번째 경우에는 너무 복잡합니다.
Joey

1
@ barlop 예 : 요점입니다 : stderr에서 일부 오류 메시지를 트리거하지만 stdout에서 아무것도 (빈 문자열) 없습니다 . 그리고 >stdout을로만 리디렉션하십시오 out.txt. 따라서 빈 파일을 만듭니다. 이 컨텍스트에서 오류 메시지를 무시할 수 있습니다.
VonC

270

이 시도:

type NUL > 1.txt

이것은 분명히 빈 파일을 만듭니다.


이 파일에 "NUL은 ./NUL은"추가
dshgna

106

다른 방법이 있습니다.

cd. > filename

11
cd. > filenamecd > filename 작품 대신 나를 위해 작동하지 않습니다 !
NaveenDA

3
"cd.> filename"은 빈 파일을 생성합니다. 그렇지 않으면 "cd> filename"명령을 사용하여 새로 작성된 파일에 파일 경로가 인쇄됩니다.
niketan

6
이 옵션을 사용합니다 : cd . > filename.extension당신이 사이에 공간이 필요 의미 cd.
아이온

77

stdout에 대한 출력없이 완전히 빈 파일을 원한다면 약간의 부정 행위를 할 수 있습니다.

copy nul file.txt > nul

stdout을 nul로 리디렉션하면 copy의 출력이 사라집니다.


1
file.txt가 있으면 실패합니다.
Grendler

6
질문이 이해되면 파일이 존재하지 않으면 좋은 동작입니다.
wallyk

32
+1. 받아 들여진 대답이 반 틀렸고 절반은 뒤틀린 반면 놀랍게도 정답은 거의 신용을 얻지 못합니다. 이것에 추가하려면 type nul>file다른 방법이 될 것입니다.
Joey

@Joey 허용되는 빈 0 바이트 파일을 만드는 여러 가지 솔루션이 있습니다.
barlop

2
@ barlop : 참고로, 이것은 의견이 작성된 시점에 허용 된 답변이었습니다. 댓글에서 답변이 변경 될 때마다 알림이 표시되지 않습니다.
Joey

48

파일 열기 :

type file.txt

새로운 파일 :

Way 1 : type nul > file.txt
Way 2 : echo This is a sample text file > sample.txt
Way 3 : notepad myfile.txt <press enter>

내용 편집 :

notepad file.txt

copy file1.txt file1Copy.txt

이름 바꾸기

rename file1.txt file1_rename.txt

파일 삭제 :

del file.txt

cmd 명령의
훌륭한

32

내 게시물에 대한 의견을 읽으면 질문을 올바르게 읽지 않았다는 것을 인정해야합니다.

Windows 명령 행에서 한 가지 방법은 fsutil 을 사용하는 것입니다 .

fsutil file createnew <filename> <size>

예를 들면 :

fsutil file createnew myEmptyFile.txt 0

아래는 * nix 명령 행입니다.

touch filename

이 명령은 파일의 수정 날짜를 변경하거나 파일을 찾을 수없는 경우 작성합니다.


불행하게도,이 질문은 구체적으로 "Cygwin의 터치 명령없이"라고 말합니다.
qid

3
터치 명령의 비 Cygwin 구현이 있습니다 : unxutils.sourceforge.net 이 좋습니다.
Greg Hewgill

* nix에서 나는 개인적으로 일부만 단순하다 > filename. 기존 파일을 자르는데 사용될 수도있다.
Frank Farmer

fsutil관리 권한이 필요합니다. 그것은 단순히 빈 파일을 만드는 것을 요구하는 것입니다 ...
Joey

@Joey이 모든 명령이 빈 파일을 만들기 위해 조금씩 다를까요? 120 점을 가진 아래의 것조차도 만질 때 많이 사용됩니다.
johnny

29
echo "" > filename

나는 이것이 Windows / DOS에서 작동한다고 생각하지만, 마지막 경험 중 하나는 꽤 오래 전입니다. 기본적으로 POSIX 호환 OS 에서 작동한다는 사실을 알고 있습니다.


2
적절하게 VonC의 답변이 내 것보다 낫기 때문에 대신 투표하십시오.
Kris

3
안타깝게도 echo ""는 큰 따옴표를 표시하고 스트림을 리디렉션 할 때 파일에 기록됩니다. echo> filename은 ECHO가 파일에 꺼져 있거나 켜져 있기 때문에 마찬가지입니다.
Grendler

파일을 작성하기 전에 "@echo off"를 줄에 넣을 수 있습니까?
Kris

27
call>file.txt

이것이 내가 아는 가장 깨끗한 방법입니다.


"깨끗한"것은 무엇입니까?
GreenAsJade

4
기억하고 사용하기 쉬우면서 파일에 아무것도 출력하지 않습니다.
nephi12

가장 효과적이고 가장 기억하기 쉬운 솔루션이었습니다.
nhershy

12
cd > filename.cfg 

C : / Program Files에서 파일을 직접 만들 수있는 파일을 만들 때 작동했습니다.


11

당신은 당신의 자신의 터치를 쓸 수 있습니다.

//touch.cpp
#include <fstream>
#include <iostream>

int main(int argc, char ** argv;)
{
  if(argc !=2)
  {
    std::cerr << "Must supply a filename as argument" << endl;
    return 1;
  }
  std::ofstream foo(argv[1]);
  foo.close();
  return 0;
}

6

SomeFile.txt에 복사 Enter

Ctrl-Z Enter


명령이 스크립트에서 실행되므로 불행히도 키보드 상호 작용이 작동하지 않는다는 질문을 정확하게했습니다. 어쨌든 고마워
Grendler

6

0 바이트 파일을 작성하는 또 다른 방법 :

break > "file.txt"

6

그래서 당신은 빈 파일을 만들 수 있습니다

'' > newfile.txt

디렉토리로 이동하여 PowerShell 창에 위 명령을 입력하십시오.

Windows 명령 프롬프트에서는 작동하지 않습니다.


5

이것을 시도하십시오 : abc > myFile.txt 먼저, myFile.txt현재 작업 디렉토리에 이름 을 가진 파일을 만듭니다 (명령 프롬프트에서). 그런 다음 abc유효한 명령이 아닌 명령 을 실행합니다 . 이런 식으로 이름이 새로운 빈 파일을 얻었습니다 myFile.txt.


2
abc경로에 있고 설치 디렉토리를 제외한 모든 드라이브를 포맷하기위한 편리한 기능인 경우 이는 매우 잘못된 것일 수 있습니다 .
출혈 손가락

5

type nul>filename 빈 파일을 새로 만듭니다.

미안 늦었 어.

업데이트 : copy nul filename리디렉션하지 않고 작동합니다 (보다 명확한 솔루션).



4

다음을 사용할 수도 있습니다.

echo. 2>foo

에 대한 디버그 출력 echo.은 거의 비어 있습니다.


4

나는 많은 스레드를 읽었지만 가장 짧은 방법은 아닙니다.

다음 명령을 사용하십시오 :

>copy /b NUL empty_file.txt


4

이전 명령을 사용할 수 있습니다

copy con file_name.ext

아무 것도 입력하지 않고 F6 키를 눌러 저장하십시오. 그러나 "파일 복사 됨"이 인쇄되지만 파일을 열면 비어 있습니다.


4

모든 유형의 파일을 만들려면 다음 코드를 사용할 수 있습니다

nul> (file_name)을 입력하십시오. (file_type)

예 : 텍스트 파일을 만들려면

nul> demo.txt를 입력하십시오.

자바 스크립트 파일을 만들려면

nul> demo.js를 입력하십시오.


3

이것은 나를 위해 일했다.

echo > file.extension

오늘 내가 찾은 또 다른 방법은 다른 답변에서 아이디어를 얻었지만 효과가있었습니다.

sometext > filename.extension

예 :

xyz > emptyfile.txt  //this would create an empty zero byte text file
abc > filename.mp4   //this would create an zero byte MP4 video media file

명령 프롬프트에 다음과 같은 오류 메시지가 표시됩니다.

xyz 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일이 아닙니다.

그러나 이상한 점은 명령이 표준 Windows 명령이 아니더라도 파일이 디렉토리에 생성되고 있다는 것입니다.


1
콘솔 응용 프로그램이 읽고 쓸 수있는 "핸들"이 두 개 이상 있습니다. 표준은 (0) STDIN, (1) STDOUT 및 (2) STDERR입니다. 여기서 트릭이 작동하는 이유는 모든 출력이 오류 핸들로 이동하지만 STDOUT을 파일로 지정하기 때문입니다. "xyz> emptyfile.txt 2> & 1"을 사용하여 STDERR을 사용중인 STDOUT으로 리디렉션하려면 "emptyfile.txt"로 리디렉션합니다. 이제 해당 파일 내에 오류 메시지가 표시됩니다.
브렌트 리튼 하우스


3

Windows에서 나는 이것을 시도했다.

echo off > fff1.txt

그것은라는 이름의 파일 생성 fff1.txt 0킬로바이트의 파일 크기를

빈 파일을 만들 수있는 명령 이외의 다른 명령을 찾지 못했습니다.

참고 : 파일을 만들려는 디렉토리에 있어야합니다.


필요한 경우 파일을 만든 후 에코하는 것을 잊지 마십시오.
QMaster

이 명령은 ENTER를 클릭 한 후 cmd를 정지시킵니다.
Kavin Raju S

왜 그런지 잘 모르겠지만, 위 명령을 입력 한 후에 "에코 온"을해야한다고 생각합니다.
옴 카르 아그라 왈


2

난 그냥 창문에서 시도했다

copy con file.txt

그런 다음 Enter키를 누른 다음 키를 누릅니다Ctrl+Z Enter

그리고 그것은 나를 위해 일했습니다.

우분투의 경우 일반적으로 VI 명령을 사용하여 파일을 생성합니다

vi file.txt

파일을 열고 ESC키를 누른 다음 : wp 를 입력하고 키를 enter누릅니다. 빈 데이터로 새 파일을 만듭니다.


2
  • content가 포함 된 bat 파일을 만듭니다 echo '' > %1. (파일 이름을 touch.bat로 지정하십시오)
  • 폴더를 PATH 변수에 추가하십시오.
  • 터치를 사용하여 파일을 만들 수 있습니다. (예 : touch temp.txttemp.txt 파일 생성)

자세한 내용은 기사를 확인 하십시오.


1

오늘 나는 새로운 것을 발견했다 :)

명령 행 창 제목이 변경되지만 빈 파일도 작성됩니다.

title > file.txt

1

관리자 모드에서 CMD를 실행하고 다음을 입력하십시오.

NUL > file_name.extention

아니면 이것을 입력

echo .> file_name.extention

1

여기 또 다른 방법이 있습니다.

rem/ > file.ext

슬래시 /는 필수입니다. 그것없이 리디렉션 부분에 의해 주석 처리되었습니다 rem.


0

먼저 파일이 존재하도록 작성하십시오.

echo . > myfile.txt

그런 다음 다음 copy명령을 사용하여 생성 된 파일을 빈 버전으로 덮어 씁니다 .

copy /y nul myfile.txt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.