Windows 명령 프롬프트에서 명령 줄 응용 프로그램을 실행하고 출력을 동시에 파일로 표시하고 리디렉션하려면 어떻게해야합니까?
예를 들어, 내가 명령을 실행 하면 결과를 표시하지 않고 dir > test.txt
호출 된 파일로 출력을 리디렉션 test.txt
합니다.
어떻게 명령 출력 표시 쓸 수 및 받는 유사한 프롬프트 Windows 명령의 파일로 리디렉션 출력, tee
유닉스 명령을?
답변
davor의 답변 을 확장하려면 다음과 같이 PowerShell을 사용할 수 있습니다.
powershell "dir | tee test.txt"
현재 디렉토리에서 exe의 출력을 리디렉션하려는 경우 .\
파일 이름 을 사용해야 합니다. 예 :
powershell ".\something.exe | tee test.txt"
답변
출력을 파일로 리디렉션 한 다음 콘솔 로 리디렉션하는 솔루션 / 해결 방법을 찾을 수있었습니다 .
dir > a.txt | type a.txt
여기서 dir 은 출력을 리디렉션해야하는 명령이고 a.txt 는 출력을 저장할 파일입니다.
답변
Unix tee
명령 의 Win32 포트 가 있습니다. http://unxutils.sourceforge.net/ 또는 http://getgnuwin32.sourceforge.net/을 참조하십시오.
답변
이것을 확인하십시오 : wintee
cygwin이 필요 없습니다.
그래도 몇 가지 문제가 발생했습니다.
또한 unxutils 에는 tee가 포함되어 있고 cygwin이 필요하지 않기 때문에 unxutils를 확인할 수 있지만 출력 EOL은 UNIX와 유사합니다.
마지막으로 PowerShell이 있으면 Tee-Object를 사용해 볼 수 있습니다. get-help tee-object
자세한 내용을 보려면 PowerShell 콘솔에 입력 하십시오.
답변
tori
나는 그것을 발견했다
dir > a.txt | type a.txt
작동하지 않았습니다 (처음 몇 줄의 dir 목록 만-일종의 프로세스 분기점을 의심하고 두 번째 부분은 ‘type’명령이 무서운 목록이 완료되기 전에 종료 되었습니까?) 대신 대신 사용했습니다.
dir > z.txt && type z.txt
순차적 명령, 하나는 두 번째 시작 전에 완료됩니다.
답변
불행히도 그런 것은 없습니다.
Windows 콘솔 응용 프로그램에는 단일 출력 핸들 만 있습니다. (음, 두 가지가 있습니다 STDOUT
, STDERR
하지만 여기서 중요하지 않습니다) >
출력은 일반적으로 파일 핸들에 콘솔 핸들에 기록 리디렉션.
어떤 종류의 멀티플렉싱을 원한다면 출력을 전환 할 수있는 외부 응용 프로그램을 사용해야합니다. 그런 다음이 응용 프로그램은 파일과 콘솔에 다시 쓸 수 있습니다.
답변
간단한 C # 콘솔 응용 프로그램은 트릭을 수행합니다.
using System;
using System.Collections.Generic;
using System.IO;
namespace CopyToFiles
{
class Program
{
static void Main(string[] args)
{
var buffer = new char[100];
var outputs = new List<TextWriter>();
foreach (var file in args)
outputs.Add(new StreamWriter(file));
outputs.Add(Console.Out);
int bytesRead;
do
{
bytesRead = Console.In.ReadBlock(buffer, 0, buffer.Length);
outputs.ForEach(o => o.Write(buffer, 0, bytesRead));
} while (bytesRead == buffer.Length);
outputs.ForEach(o => o.Close());
}
}
}
이를 사용하려면 소스 명령을 프로그램에 파이프하고 출력을 복제하려는 파일의 경로를 제공하십시오. 예를 들면 다음과 같습니다.
dir | CopyToFiles files1.txt files2.txt
dir의 결과를 표시하고 결과를 files1.txt와 files2.txt에 모두 저장합니다.
위의 오류 처리 방식이 많지 않으므로 실제로 여러 파일을 지원하지 않아도됩니다.
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)