क्या विंडोज पर बिल्ली के लिए प्रतिस्थापन है


309

मुझे *.batविंडोज पर स्क्रिप्ट के साथ दो बाइनरी फाइलें मिलाने की जरूरत है ।

मैं उसे कैसे प्राप्त कर सकता हूं?


15
आपका शीर्षक प्रश्न और आपका विवरण प्रश्न पूरी तरह से सिंक में नहीं हैं। शीर्षक प्रश्न के लिए टाइप सबसे अच्छा उत्तर होगा और विवरण प्रश्न के लिए कॉपी / बी सबसे अच्छा उत्तर होगा। यदि संभव हो तो आप उस शीर्षक को बदलना चाहते हैं।
जोसफ

2
@ जोसेफ कार्यक्षमता typeका केवल एक हिस्सा बदल सकता है cat(विंडोज पर द्विआधारी और पाठ फ़ाइलों के बीच अंतर के कारण)।
jfs

क्रॉस डुप्लिकेट: superuser.com/q/434870/52365
GSerg

जवाबों:


452

विंडोज typeकमांड UNIX के समान काम करता है cat

उदाहरण 1:

type file1 file2 > file3

के बराबर है:

cat file1 file2 > file3

उदाहरण 2:

type  *.vcf > all_in_one.vcf  

यह कमांड सभी vcards को एक में मर्ज कर देगा।


1
इस स्थिति में टाइप के साथ समस्या यह है कि कमांड लाइन पर निर्दिष्ट एक से अधिक फाइल टाइप करने पर अवांछित फाइल हेडर जुड़ जाते हैं।
ग्रेग हेवगिल सेप

2
कमांड लाइन पर एक से अधिक फ़ाइल निर्दिष्ट करते समय, फ़ाइल की सामग्री को कॉपी करने से पहले कुछ रिक्त लाइनों और फ़ाइल के नाम को आउटपुट करें। इसे आज़माएं :)
ग्रेग हेविल

3
आह, मैंने देखा नहीं था कि हेडर stderr पर जाते हैं। जानकार अच्छा लगा।
ग्रेग हेवगिल सेप

1
ध्यान दें कि तीर के साथ टाइप (ऊपर) बड़ी फ़ाइलों के साथ काम नहीं करता (जैसे> 2 जीबी या 4), कम से कम एक्सपी के साथ। आप "कॉपी" कमांड का उपयोग कर सकते हैं, हालांकि (अन्य उत्तर देखें)।
रोवरडपैक

2
एक और टिप: किसी भी अन्य आउटपुट को दिखाने से बचने के लिएtype file1 file2 > file3 2>NUL
माइक टी

85

आप copy /bइस तरह का उपयोग कर सकते हैं :

copy /b file1+file2 destfile

5
फ़ाइलों के अनुक्रम के लिए आप "कॉपी / बी फाइल * डेस्टाइल" जैसे वाइल्डकार्ड का उपयोग कर सकते हैं
स्टालिंको

मेरे लिए अजीब है कि यह स्वीकृत उत्तर नहीं है, स्वीकृत उत्तर typeपर टिप्पणियों में उल्लिखित मुद्दों को देखते हुए ... जब तक कि इस समाधान में समान कमियां नहीं हैं, लेकिन लोगों के लिए उन्हें नोट करने के लिए पर्याप्त लोकप्रिय नहीं है!
जॉनी थ्रू

23

यदि आप उस मशीन पर नियंत्रण रखते हैं जहां आप अपना काम कर रहे हैं, तो मैं अत्यधिक GnuWin32 स्थापित करने की सलाह देता हूं । बस "सभी डाउनलोड करें" और wget प्रोग्राम को सभी पैकेजों को पुनः प्राप्त करने दें। फिर आप बिल्ली, grep, मिल, gzip, टार, कम, और सैकड़ों अन्य लोगों के लिए उपयोग करेंगे।

GnuWin32 उन चीजों में से एक है जो मैं एक नए विंडोज बॉक्स पर स्थापित करता हूं।


मैं GetGnuWin32 (स्थापना को सरल बनाने के लिए) की सिफारिश करूँगा
22

3
यदि बाहरी उपयोगिता का उपयोग स्वीकार्य है, तो मैं विंडोज के लिए बिजीबॉक्स पसंद करूंगा, जो कि ~ 30 यूनिक्स उपयोगिताओं को शामिल करते हुए एकल ~ 600 kB exe है। अंतर केवल इतना है कि व्यक्ति को "
व्यस्त

12

बेशर्म पॉवरशेल प्लग (क्योंकि मुझे लगता है कि सीखने की अवस्था एक दर्द है, इसलिए किसी भी अवसर पर कुछ सिखाना मदद कर सकता है)

Get-Content file1,file2

ध्यान दें कि typeGet-Content के लिए एक उपनाम है, इसलिए यदि आपको यह पसंद है, तो आप लिख सकते हैं:

type file1,file2

1
यह काम करता है, लेकिन यह कुत्ता धीमा है। मुझे यह सवाल कुछ बड़ी वीडियो फ़ाइलों को समाप्‍त करने के लिए शक्‍तियों के इंतजार में बैठे हुए मिला, जो प्रति फ़ाइल आधे घंटे ले रही थी। मैंने इस प्रक्रिया को मार डाला और इसे cmd के साथ प्रयोग करके देखा type file1 file2 > destऔर प्रत्येक सेकंड में किया गया।
stib


इसने मेरी फाइलों को किसी कारणवश UTF-16 में बदल दिया। -Encoding UTF8कुछ भी नहीं बदला।
जॉन ड्वोरक

5

बस कई स्रोत फ़ाइलों और एक गंतव्य फ़ाइल के साथ डॉस कॉपी कमांड का उपयोग करें।

copy file1+file2 appendedfile

आपको बाइनरी फ़ाइलों के लिए / B विकल्प की आवश्यकता हो सकती है


2

विंडोज 10 के रेडस्टोन 1 रिलीज में, विंडोज ने एनटीओएस कर्नेल के लिए एक वास्तविक लिनक्स सबसिस्टम जोड़ा। मुझे लगता है कि मूल रूप से इसका उद्देश्य एंड्रॉइड ऐप्स का समर्थन करना था, और शायद docker प्रकार के परिदृश्य। Microsoft ने Canonical के साथ भागीदारी की और एक वास्तविक देशी बैश शेल जोड़ा। इसके अलावा, आप कई उबंटू पैकेज पाने के लिए apt पैकेज मैनेजर का उपयोग कर सकते हैं। उदाहरण के लिए, आप जीसीसी उपकरण श्रृंखला को स्थापित करने के लिए apt-get gcc कर सकते हैं जैसा कि आप लिनक्स बॉक्स पर करेंगे।

अगर मैं विश्वविद्यालय में रहते हुए ऐसी बात करता, तो मुझे लगता है कि मैं अपनी ज्यादातर यूनिक्स प्रोग्रामिंग असाइनमेंट्स को मूल विंडोज लैश शेल में कर सकता था।


1

यदि आप केवल मौजूदा फ़ाइल के अंत में पाठ जोड़ना चाहते हैं, तो आप >> पाइप का उपयोग कर सकते हैं। उदाहरण के लिए:

echo new text >>existingFile.txt

0

यदि आपको एक बैच स्क्रिप्ट का उपयोग करना है और यहां स्थापित अजगर को बैच और अजगर में एक बहुविकल्पी उत्तर है:

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

मैं टार आर्काइव को फिर से जोड़ने का प्रयास करता हूं जिसे लिनक्स सर्वर में विभाजित किया गया है।

और मैंने पाया कि अगर मैं typeविंडोज में उपयोग करता हूं cmd.exe, तो यह फ़ाइल को गलत क्रम में शामिल होने का कारण बनेगा। (यानी typeकभी-कभी XXXX.ad को पहले और फिर XXXX.ac, XXXX.aa आदि ...) में डाल दिया जाएगा ।

तो, मुझे batGitHub https://github.com/sharkdp/bat नाम का एक टूल मिला, जिसमें एक विंडोज बिल्ड है, और इसमें बेहतर कोड हाइलाइट है और महत्वपूर्ण बात यह है, यह टार आर्काइव को रिजेक्ट करने के लिए विंडोज पर ठीक काम करता है!


0

इसलिए मैं ईओएल चार्ट को संरक्षित करने के लिए संयम के साथ एक समान समाधान की तलाश कर रहा था और पता चला कि कोई रास्ता नहीं था, इसलिए मैं वही करता हूं जो मैं सबसे अच्छा करता हूं और अपनी खुद की विशिष्टता बनाई है यह विंडोज़ के लिए एक देशी बिल्ली निष्पादन योग्य है - https: // मेगा। न्यूज़ीलैंड / #! 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

विंडोज प्रकार कमांड में समस्याएं हैं, उदाहरण के लिए 512 बाइट्स सीमा पर यूनिकोड वर्णों के साथ। साइगविन की बिल्ली का प्रयास करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.