2017-04-12 6 views
0

오늘 특정 디렉터리에서 파일 목록을 가져오고 싶습니다. 이 작업을 수행하는 가장 쉬운 방법은 프롬프트를 열고 내가 처음 '디렉토리'명령을 실행하고 그 다음 출력이 생성되어 있다고 생각되는명령 줄 명령 순서

dir > filelist.txt 

를 실행하는 것입니다. 그런 다음 파일로 리디렉션됩니다.

그러나 흥미로운 점은 'filelist.txt'안에있는 디렉토리 목록에는 'fielist.txt'에 예상치 못한 0 바이트가 포함되어 있다는 것입니다.

'filelist.txt'명령이 실제로 450 바이트를 갖는 것으로 표시되면 (리디렉션, 동일한 프롬프트없이 디렉토리를 실행할 때).

1) 'filelist'txt'가 전혀 표시되지 않는 이유는 무엇입니까?

2) 명령 프롬프트는 무엇입니까?

답변

0

먼저 'dir'명령이 실행 된 다음 출력이 생성된다고 가정했습니다.

어디까지 출력이 살아 있습니까?

출력은 기본적으로 프로그램에서 출력 된 직후 콘솔에 표시됩니다.

이제 출력을 파일로 리디렉션하면 콘솔에 기록 될 때 해당 파일에 기록됩니다. 프로그램이 출력을 쓰는 순간입니다.

명령에 출력이 없더라도 파일은 계속 만들어집니다. 콘솔은 먼저 요청 된 출력 파일을 생성하려고 시도합니다. 실패하면 요청한 명령도 실행되지 않습니다.

+0

각 명령이 실행되는 배경에 버퍼가 있다고 가정하고 출력이 버퍼링되며 (이 경우에는 다음 입력을 포함하지 않음) 다음 입력으로 전달됩니다. 싱크대 나 미들웨어 같은 것. –