विण्डोज़ कमांड के समतुल्य क्या है?


284

मुझे पता है कि इस के समान एक पद है: यहाँ
मैंने compइसका उल्लेख करते हुए कमांड का उपयोग करने की कोशिश की , लेकिन अगर मेरे पास दो फाइलें हैं, तो एक "abcd" जैसे डेटा के साथ और दूसरा डेटा "abcde" के साथ, यह सिर्फ यह कहता है कि फाइलें विभिन्न आकारों की हैं। मैं जानना चाहता था कि वास्तव में वे कहां भिन्न हैं। यूनिक्स में, सरल अंतर मुझे बताता है कि कौन सी पंक्ति और कॉलम, विंडोज़ में कम्पोज़ कमांड काम करता है अगर मेरे पास "पेट" और "एब्स" जैसा कुछ है। अन्यथा नहीं। कोई विचार जो मैं इसके लिए उपयोग कर सकता हूं?

जवाबों:


461

इसे CMD शेल या बैच फ़ाइल में चलाएँ:

FC file1 file2

FC बाइनरी फ़ाइलों की तुलना करने के लिए भी इस्तेमाल किया जा सकता है:

FC /B file1 file2

3
आप दो फ़ोल्डरों में सभी परिवर्तित फ़ाइलों के साथ ऐसा कैसे करते हैं? जैसे, मैं फ़ोल्डर 1 की सामग्री की तुलना फ़ोल्डर 2 की सामग्री से करता हूं: फ़ोल्डर 2 में कोई भी परिवर्तित रेखाएं दिखाई देती हैं?
वोल्फपैक'08

17
@ वोल्फपैक'08 ": FC path1\* FC path2\*फ़ोल्डरों की सभी फाइलों की तुलना करेगा path1और path2बशर्ते कि उनके पास (फाइलें) समान नाम हों। यदि बेमेल नामों वाली फाइलें हैं, तो एफसी एक लापता फाइल की सूचना देगा, लेकिन केवल पहले फ़ोल्डर की फाइलों के लिए। दूसरे फ़ोल्डर में नहीं मिला और दूसरा रास्ता नहीं। सभी बेमेल को पकड़ने के लिए, एक अलग तकनीक की आवश्यकता होगी।
एंड्री एम

@AndriyM तो, नई फाइलें एफसी को बिना किसी वास्तविक लाइनों को वापस किए त्रुटि का कारण बनेंगी? केवल त्रुटि संदेश?
वोल्फपैक'08

1
@ वोल्फपैक'08: हां, बस लापता समकक्ष के बारे में संदेश, मौजूदा पार्टी से कोई रेखा नहीं। (लेकिन यह अन्य, मौजूदा, फ़ाइल जोड़े के प्रसंस्करण को समाप्त नहीं करेगा और उनकी तुलना अभी भी की जाएगी, यदि आप यही पूछ रहे थे।)
एंड्री एम

@AndriyM तो, आपके कहने का अर्थ है: "यदि त्रुटि: files in both directories are diff'd; files in only one directory throw errors." दिलचस्प है। लेकिन निश्चित रूप से एक 3-पार्टी कार्यक्रम में अंतर के बराबर है?
वोल्फपैक'08

36

खैर, विंडोज पर मैं खुशी से दौड़ता हूं diffऔर जीएनयू के कई अन्य उपकरण। आप के साथ यह कर सकते हैं cygwin , लेकिन मैं व्यक्तिगत रूप से पसंद करते हैं GnuWin32 क्योंकि यह एक बहुत हल्का स्थापना अनुभव है।

तो, मेरा जवाब यह है कि विंडोज के बराबर diff, diffखुद के अलावा और कोई नहीं है!


1
Cygwin की आधार स्थापना में अंतर शामिल नहीं लगता है। इसे प्राप्त करने के लिए मुझे कौन से अतिरिक्त पैकेज स्थापित करने की आवश्यकता है?
वारेन ड्यू

7
मैं साइबर की सिफारिश नहीं करता। मैं एक देशी Win32 पोर्ट ऑफ़ डिफरेंट का उपयोग करता हूँ
डेविड हेफर्नन

1
@WarrenDew आपको जिस Cygwin पैकेज की आवश्यकता है diffutilsसाइबरविन
स्टीव पिचर्स

24

Winmerge की एक कमांड लाइन उपयोगिता है जो चेक आउट करने लायक हो सकती है।

इसके अलावा, आप इसके ग्राफिकल हिस्से का भी उपयोग कर सकते हैं, जो आपके लिए आवश्यक है।


2
यद्यपि यह एक अंतर्निहित विंडोज उपयोगिता नहीं है, मैं अत्यधिक अनुशंसा करता हूं - यह ओपन-सोर्स, लाइट-वेट और मेरे अनुभव में बग-मुक्त है।
david.barkhuizen

19

एक अन्य विकल्प यहां से गिट डाउनलोड और इंस्टॉल करना है । फिर, Git\bin\अपने PATHचर में पथ जोड़ें । यह आपको न केवल अलग-अलग, बल्कि कई अन्य लिनक्स कमांड भी देगा जो आप विंडोज़ कमांड लाइन से उपयोग कर सकते हैं।

आप PATHकंप्यूटर पर राइट क्लिक करके और प्रॉपर्टीज़ को चुनकर वैरिएबल सेट कर सकते हैं । फिर आप स्क्रीन के बाईं ओर उन्नत सिस्टम सेटिंग्स पर क्लिक कर सकते हैं। पॉप अप में, पर्यावरण चर पर क्लिक करें और फिर अपने उपयोगकर्ता चर में पाथ चर को जोड़ें या अपडेट करेंGit\bin\

डिटेल अलग डॉक्यूमेंटेशन


@firelight - आपके उत्तर के लिए धन्यवाद। क्या आप इसका विस्तृत वर्णन कर सकते हैं कि आपका यहाँ क्या अर्थ है: "फिर, अपने पेट चर में Git \ bin \ के लिए पथ जोड़ें।"
BKSpurgeon

2
@BKSpurgeon - यदि आप कंप्यूटर पर राइट क्लिक करते हैं और प्रॉपर्टीज का चयन करते हैं तो आप स्क्रीन के बाईं ओर एडवांस्ड सिस्टम सेटिंग्स पर क्लिक कर सकते हैं। पॉप अप में, पर्यावरण चर पर क्लिक करें और फिर Git \ bin \
टिम हचिसन के

@JustinCormack क्या आपके पास इसके लिए कोई संदर्भ है? मैंने बस गिट बैश में अलग होने की कोशिश की और यह काम किया
टिम हचिसन

3
@Tim Hutchison, आपके जवाब से: "यह आपको न केवल अलग-अलग, बल्कि कई अन्य लिनक्स कमांड देगा जो आप विंडोज़ कमांड लाइन से उपयोग कर सकते हैं।" - आपका क्या मतलब है? जब कोई Git स्थापित करता है, तो उसे git...PATH से बस निष्पादन योग्य उपलब्ध होना चाहिए । इसके अलावा, उत्तर में संभवतः एक महत्वपूर्ण जानकारी शामिल होनी चाहिए: आपको git diffकेवल लिखकर , भिन्न उपकरण को लॉन्च करने की आवश्यकता है diff
पेट्र बोडर

यार, यह पूरी तरह से एक और हैdiff
vintproykt

14

एफसी मेरे मामले में बहुत अच्छा काम करता है यह मददगार नहीं था क्योंकि मैं सिर्फ उन लाइनों को चाहता था जो बदल दी जाती हैं। और FC फ़ाइल नाम, समान पंक्तियों और द्विपक्षीय तुलना जैसे अतिरिक्त डेटा देते हैं।

    >fc data.txt data.txt.bak   
    ***** DATA.TXT
    ####09
    ####09
    ####09
    ***** DATA.TXT.BAK
    ####09
    ####08
    ####09

लेकिन मेरे मामले में मैं केवल उन लाइनों को चाहता था जो बदल गए हैं और चाहते हैं कि उन लाइनों को किसी अन्य हेडर या डेटा के बिना, अलग फ़ाइल में निर्यात किया जाए।

इसलिए मैंने फ़ाइल की तुलना करने के लिए "खोज" का उपयोग किया :

findstr /V /G:data.txt.bak data.txt >DiffResult.txt

कहाँ पे :

data.txt.bak पुरानी फ़ाइल का नाम है

data.txt नई फ़ाइल का नाम है

DiffResult.txt डेटा परिवर्तित किया गया है जिसमें सिर्फ एक पंक्ति #### 09 है


1
/ ब्लॉक की केवल पहली पंक्ति और अंतिम पंक्ति जिसे बदला गया है / एन शो लाइन नंबर
लुकास

10

एफसी। Cygwin के अंतर की तुलना में बड़ी फ़ाइलों (> 4 GBytes) को संभालने में fc बेहतर है।


10

इसमें Powershell (जो Windows का हिस्सा है) भी है। यह जल्दी नहीं है, लेकिन यह लचीला है, यहाँ मूल आदेश है। अगर आपको बेहतर प्रारूपण की आवश्यकता है, तो लोगों ने इसके लिए विभिन्न cmdlets और स्क्रिप्ट लिखी हैं।

PS C:\Users\Troll> Compare-Object (gc $file1) (gc $file2)

विंडोज का हिस्सा नहीं है, लेकिन अगर आप विजुअल स्टूडियो के साथ डेवलपर हैं, तो यह WinDiff (चित्रमय) के साथ आता है

लेकिन मेरा व्यक्तिगत पसंदीदा बियॉन्डकॉम है, जिसकी कीमत $ 30 है।


4

डिफुटिल्स शायद आपका सबसे अच्छा दांव है। यह विन्डोज़ के बराबर है।

मेरे ज्ञान के लिए कोई अंतर्निहित समकक्ष नहीं हैं।


मैंने वह भी इस्तेमाल किया, हालांकि, आज मुझे पता चला कि उस पृष्ठ पर उपलब्ध कराया गया पुराना संस्करण 2.8.7 में एक बग है (जब कुछ पीडीएफ फाइलों की तुलना की जाती है तो उन्हें समान बताया जाता है)। तो अब फायरलाइट द्वारा सुझाए गए "गिट डिफरेंट" को प्राथमिकता देना।

4

COMP के साथ त्रुटि प्राप्त करने का कारण यह है कि उपयोगिता उन फ़ाइलों को मानती है जिनकी आप तुलना कर रहे हैं वे समान आकार के हैं। इसे दूर करने के लिए आप वें '/n'विकल्प का उपयोग कर सकते हैं जिसके साथ आप उन पंक्तियों की संख्या निर्दिष्ट कर सकते हैं जिनकी आप तुलना करना चाहते हैं। ( 'comp /?'कमांड लाइन पर टाइप करके COMP द्वारा समर्थित विकल्पों को देखें । इसलिए आपकी कमांड इस तरह दिखाई देगी:

C:\>comp "filepath1" "filepath2" /a /l /n=(the number of lines you want to compare) /c 

यदि आप COMP का उपयोग करना चाहते हैं तो यह आपकी समस्या को हल करना चाहिए। लेकिन यह वास्तव में बड़ी फ़ाइलों के लिए एक समस्या होगी।

हालांकि compएक विकल्प है, लेकिन मुझे लगता है कि यह आदिम है और FCएक बेहतर विकल्प है। यदि आप लगातार आधार पर एक की आवश्यकता के लिए उपयोग कर सकते हैं FORFILESऔर FCसंभवत: वास्तव में एक अच्छा फिल्मकारक उपयोगिता बना सकते हैं ।

Ref के लिए FC का उपयोग इस तरह किया जाता है:

C:\>fc /c(case insensistive) /lbn(number of errors allowed before you wanna stop compare) /n(display line number) "filename1" "filename2"

ऐसे कई विकल्प उपलब्ध हैं जिन्हें आप 'fc /?' आशा करके देख सकते हैं


2

मुझे विंडोज़ के लिए एक हल्का ग्राफिकल सॉफ्टवेयर मिला है जो diffकमांड के अभाव में उपयोगी लगता है । यह मेरी सभी समस्याओं को हल कर सकता है।

WinDiff http://www.grigsoft.com/download-windiff.htm


0

विहित कमांड के बराबर विंडो एफसी (फाइल कॉमप्रे) कमांड है।

यहाँ ऐसा करने के लिए बुनियादी कदम हैं:
1. एक फ़ोल्डर में दो फ़ाइलों को रखें (उदाहरण के लिए file1.html और file2.html)
2. कमांड प्रॉम्प्ट लॉन्च करें
3. fc file1Location फ़ाइल 2 प्रकार का स्थानांतरण करें

उसी पर एक विस्तृत ट्यूटोरियल मिला है:

http://www.howtogeek.com/206123/how-to-use-fc-file-compare-from-the-windows-command-prompt/


0

मुझे नहीं पता कि निम्नलिखित उपकरण क्या आप की जरूरत है। लेकिन मुझे विशिष्ट फ़ाइलों के लिए, कुछ ऑनलाइन टूल का उपयोग करना पसंद है। इस तरह मैं परिचालन प्रणाली की परवाह किए बिना इसका उपयोग कर सकता हूं। यहाँ एक उदाहरण है: diffchecker.com

लेकिन मेरी जरूरतों के लिए, मुझे लगता है कि मेरी परियोजना की फाइलों में परिवर्तन और लॉग ट्रैक करने के लिए सबसे अच्छा उपकरण जीआईटी है। यदि आप एक टीम में काम करते हैं, तो आपके पास एक सर्वर में कुछ रेपो ऑनलाइन हो सकते हैं, या बिटबकेट या जीथब के साथ इसका उपयोग कर सकते हैं।

आशा है कि यह किसी की मदद करता है।


0

यदि आपने अपनी मशीन पर गिट स्थापित किया है, तो आप एक गिट टर्मिनल खोल सकते हैं और diffसामान्य रूप से लिनक्स कमांड का उपयोग कर सकते हैं ।

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