Muszę połączyć dwa pliki binarne za pomocą *.bat
skryptu w systemie Windows.
Jak mogę to osiągnąć?
windows
command-line
scripting
Artem Tichomirow
źródło
źródło
type
może zastąpić tylko częśćcat
funkcjonalności (ze względu na rozróżnienie między plikami binarnymi i tekstowymi w systemie Windows).Odpowiedzi:
type
Polecenie systemu Windows działa podobnie do systemu UNIXcat
.Przykład 1:
odpowiada:
Przykład 2:
To polecenie połączy wszystkie vCard w jedną.
źródło
type file1 file2 > file3 2>NUL
Możesz użyć w
copy /b
ten sposób:źródło
type
przedstawionymi w komentarzach do przyjętej odpowiedzi ... chyba że to rozwiązanie ma podobne wady, ale nie jest wystarczająco popularne, aby ludzie mogli je zauważyć!Jeśli masz kontrolę nad maszyną, w której pracujesz, zdecydowanie polecam zainstalowanie GnuWin32 . Po prostu „Pobierz wszystko” i pozwól programowi wget pobrać wszystkie pakiety. Będziesz wtedy mieć dostęp do cat, grep, find, gzip, tar, less i setek innych.
GnuWin32 to jedna z pierwszych rzeczy, które instaluję na nowym systemie Windows.
źródło
Bezwstydna wtyczka PowerShell (ponieważ myślę, że krzywa uczenia się jest uciążliwa, więc nauczanie czegoś przy każdej okazji może pomóc)
Pamiętaj, że
type
jest to alias dla Get-Content, więc jeśli bardziej ci się spodoba, możesz napisać:źródło
type file1 file2 > dest
a każdy z nich wykonano w kilka sekund.'\n'
może zostać zastąpiony przez'\r\n'
-Encoding UTF8
nic nie zmieniłem.Wystarczy użyć polecenia dos copy z wieloma plikami źródłowymi i jednym plikiem docelowym.
Może być potrzebna opcja / B dla plików binarnych
źródło
W wydaniu Redstone 1 systemu Windows 10 system Windows dodał prawdziwy podsystem Linux dla jądra NTOS. Myślę, że pierwotnie miał on obsługiwać aplikacje na Androida, a może scenariusze typu dokerów. Microsoft współpracował z Canonical i dodał prawdziwą natywną powłokę bash. Możesz także użyć menedżera pakietów apt, aby uzyskać wiele pakietów Ubuntu. Na przykład możesz zrobić apt-get gcc, aby zainstalować łańcuch narzędzi GCC, tak jak na Linux-ie.
Gdyby coś takiego istniało podczas studiów, myślę, że mógłbym wykonać większość moich zadań związanych z programowaniem w Uniksie w natywnej powłoce bash Windows.
źródło
Jeśli chcesz po prostu dołączyć tekst na końcu istniejącego pliku, możesz użyć >> potoku. dawny:
źródło
Jeśli musisz użyć skryptu wsadowego i zainstalować tutaj python, odpowiedzią jest policz w wersji wsadowej i python:
Jeśli zostanie zapisany jako join.bat, użycie:
Dzięki też ta odpowiedź za inspirację.
źródło
Próbuję ponownie dołączyć do archiwum tar, które zostało podzielone na serwer Linux.
I znalazłem, że jeśli używam
type
w systemie Windowscmd.exe
, spowoduje to, że plik zostanie połączony w niewłaściwej kolejności (tj.type
Czasami najpierw umieści XXXX.ad, a następnie XXXX.ac, XXXX.aa itp.)Znalazłem więc narzędzie o nazwie
bat
GitHub https://github.com/sharkdp/bat, które ma kompilację Windows i ma lepsze podświetlenie kodu, a ważne jest to, że działa dobrze w Windows, aby ponownie dołączyć do archiwum tar!źródło
Szukałem więc podobnego rozwiązania z możliwością zachowania znaków EOL i odkryłem, że nie ma sposobu, więc robię to, co robię najlepiej i robię własną użyteczność. Jest to natywny plik wykonywalny kota dla systemu Windows - https: // mega. nz / #! 6AVgwQhL! qJ1sxx-tLtpBkPIUx__iQDGKAIfmb21GHLFerhNoaWk
Nazywam go sharp-cat, ponieważ jest zbudowany w języku C #, możesz skanować za pomocą programu antywirusowego, a kod źródłowy zostanie udostępniony na żądanie
źródło
Komenda typu Windows ma problemy, na przykład ze znakami Unicode na granicy 512 bajtów. Wypróbuj kota Cygwina.
źródło