Windows에서 고양이를 대체합니까?


309

*.batWindows 에서 스크립트로 두 개의 이진 파일을 결합해야합니다 .

어떻게하면 되나요?


15
제목 질문과 설명 질문이 완전히 일치하지 않습니다. type은 제목 질문에 가장 적합한 답변이고 copy / b는 설명 질문에 가장 적합한 답변입니다. 가능하면 제목을 변경하고 싶을 수도 있습니다.
Joseph

2
@Joseph typecatWindows의 이진 파일과 텍스트 파일의 구별로 인해 기능의 일부만 대체 할 수 있습니다 .
jfs

답변:


452

Windows type명령은 UNIX와 유사하게 작동합니다 cat.

예 1 :

type file1 file2 > file3

다음과 같습니다.

cat file1 file2 > file3

예 2 :

type  *.vcf > all_in_one.vcf  

이 명령은 모든 vcard를 하나로 병합합니다.


1
이 상황에서 type의 문제점은 명령 행에 지정된 둘 이상의 파일을 입력 할 때 원하지 않는 파일 헤더를 추가한다는 것입니다.
Greg Hewgill

2
명령 행에 둘 이상의 파일을 지정할 때, type은 파일의 내용을 복사하기 전에 몇 개의 빈 줄과 파일 이름을 출력합니다. 그것을보십시오 :)
그렉 휴길

3
아, 헤더가 stderr로 이동하는 것을 보지 못했습니다. 알아 둘만 한.
Greg Hewgill

1
화살표가있는 유형 (위와 같이)은 적어도 XP에서는 큰 파일 (예 :> 2GB 또는 4)에서는 작동하지 않습니다. "복사"명령을 사용할 수 있습니다 (다른 답변 참조).
rogerdpack

2
또 다른 팁 : 다른 출력을 피하기 위해type file1 file2 > file3 2>NUL
Mike T

85

다음 copy /b과 같이 사용할 수 있습니다 :

copy /b file1+file2 destfile

5
일련의 파일에 대해서는 "copy / b file * destfile"과 같은 와일드 카드를 사용할 수 있습니다
Stalinko

이 답변 type에는 비슷한 단점이 있지만 사람들이 주목할만큼 충분히 인기가 없다면 , 대답이 답이 아니라는 점을 감안할 때 이것이 대답이 아니라는 것이 이상합니다.
Jony Thrive 1

23

작업중인 컴퓨터를 제어 할 수있는 경우 GnuWin32 설치를 적극 권장 합니다. "모두 다운로드"만하면 wget 프로그램이 모든 패키지를 검색 할 수 있습니다. 그러면 고양이, grep, find, gzip, tar, less 및 기타 수백 가지에 액세스 할 수 있습니다.

GnuWin32는 새로운 Windows 상자에 처음 설치하는 것 중 하나입니다.


GetGnuWin32 (설치를 단순화하기 위해)를 추천합니다
jfs

3
외부 유틸리티를 사용하는 것이 허용 가능한 경우 ~ 30 Unix 유틸리티를 통합하는 단일 ~ 600 kB exe 인 Windows 용 busybox를 선호합니다. 유일한 차이점은 간단한 "cat"대신 "busybox cat"명령을 사용해야한다는 것입니다.
Fr0sT

12

뻔뻔한 PowerShell 플러그 (학습 곡선이 고통 스럽다고 생각하기 때문에 언제든지 기회를 가르치는 것이 도움이 될 수 있음)

Get-Content file1,file2

참고 type당신이 더 나은 그것을 원한다면 그래서, 당신이 쓸 수 가져 오기-내용의 별칭입니다 :

type file1,file2

1
작동하지만 개가 느립니다. Powershell이 ​​파일 당 30 분이 걸리는 큰 비디오 파일을 연결하기를 기다리는 동안이 질문을 발견했습니다. 프로세스를 종료하고 cmd를 사용하여 시도 type file1 file2 > dest했으며 각 프로세스 는 몇 초 만에 완료되었습니다.
stib


어떤 이유로 내 파일을 UTF-16으로 변환했습니다. -Encoding UTF8아무것도 바꾸지 않았습니다.
John Dvorak '

5

여러 소스 파일과 하나의 대상 파일과 함께 dos copy 명령을 사용하십시오.

copy file1+file2 appendedfile

이진 파일에 대해 / B 옵션이 필요할 수 있습니다.


2

Windows 10의 Redstone 1 릴리스에서 Windows는 NTOS 커널에 대한 실제 Linux 하위 시스템을 추가했습니다. 원래 Android 앱 및 도커 유형 시나리오를 지원하기위한 것이라 생각합니다. Microsoft는 Canonical과 파트너 관계를 맺고 실제 네이티브 bash 셸을 추가했습니다. 또한 apt package manager를 사용하여 많은 우분투 패키지를 얻을 수 있습니다. 예를 들어, apt-get gcc를 수행하여 Linux 상자에서와 같이 GCC 도구 체인을 설치할 수 있습니다.

대학에있을 때 이런 일이 있었다면, 기본 Windows bash 쉘에서 대부분의 유닉스 프로그래밍 과제를 수행 할 수 있다고 생각합니다.


1

기존 파일의 끝에 텍스트를 추가하려는 경우 >> 파이프를 사용할 수 있습니다. 전의:

echo new text >>existingFile.txt

0

배치 스크립트를 사용해야하고 파이썬을 설치 한 경우 배치 및 파이썬 의 polygot 답변이 있습니다.

1>2# : ^
'''
@echo off
python "%~nx0" " %~nx1" "%~nx2" "%~nx3"
exit /b
rem ^
'''
import sys
import os

sys.argv = [argv.strip() for argv in sys.argv]
if len(sys.argv) != 4:
    sys.exit(1)

_, file_one, file_two, out_file = sys.argv

for file_name in [file_one, file_two]:
    if not os.path.isfile(file_name):
        print "Can't find: {0}".format(file_name)
        sys.exit(1)

if os.path.isfile(out_file):
    print "Output file exists and will be overwritten"

with open(out_file, "wb") as out:
    with open(file_one, "rb") as f1:
        out.write(f1.read())

    with open(file_two, "rb") as f2:
        out.write(f2.read())

join.bat로 저장하면 사용법은 다음과 같습니다.

join.bat file_one.bin file_two.bin out_file.bin

영감에 대한 이 답변 에도 감사드립니다 .


0

Linux 서버에서 분할 된 tar 아카이브에 다시 참여하려고합니다.

그리고 typeWindows에서 사용 cmd.exe하면 파일이 잘못된 순서로 결합되는 것을 발견했습니다 (예 : type때때로 XXXX.ad를 처음에 넣은 다음 XXXX.ac, XXXX.aa 등을 넣습니다 ...)

따라서 Windows 빌드가 있고 batGitHub https://github.com/sharkdp/bat 라는 도구를 발견했으며 코드 강조 표시가 더 중요하며 중요한 것은 Windows에서 tar 아카이브에 다시 참여하기 위해 잘 작동한다는 것입니다!


0

그래서 나는 EOL 문자를 보존하기 위해 abillity와 비슷한 솔루션을 찾고 있었고 방법이 없다는 것을 알았습니다. 그래서 최선을 다하고 내 자신의 유용성을 만들었습니다. 이것은 Windows 용 기본 고양이 실행 파일입니다 : https : // mega. nz / #! 6AVgwQhL! qJ1sxx-tLtpBkPIUx__iQDGKAIfmb21GHLFerhNoaWk

Usage: cat file1 file2 file3 file4 -o output.txt
-o | Specifies the next arg is the output, we must use this rather than ">>" to preserve the line endings

나는 C #으로 빌드 된 것처럼 날카로운 고양이라고 부르고 안티 바이러스로 스캔하면 자유롭게 소스 코드를 요청할 수 있습니다.


-1

Windows 유형 명령에는 512 바이트 경계의 유니 코드 문자와 같은 문제가 있습니다. Cygwin의 고양이를보십시오.

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