วิธีเปรียบเทียบไฟล์ INI สองไฟล์ (หรือมากกว่า)?


5

ฉันมีไฟล์ INIสองไฟล์และฉันต้องการเห็นความแตกต่างระหว่างนั้น (ซึ่งคีย์ใดมีค่าแตกต่างกันและที่หนึ่งมีคีย์ที่อื่น ๆ ไม่ได้) ดังนั้น ...

วิธีเปรียบเทียบไฟล์ INI สองไฟล์(หรือมากกว่า) ?


ที่เกี่ยวข้อง: เครื่องมือผสาน 3 ทาง
kenorb

คำตอบ:



5

ลอง IniCompare

ข้อความแสดงแทน

หรือดูรายการเครื่องมือแก้ไข / เปรียบเทียบ Iniนี้แม้ว่าเครื่องมือที่ต่างกันอาจเป็นวิธีที่ง่ายที่สุด


2
IniCompare บน Vista / Win7 ต้องการ VB DLL ไปที่นี่: support.microsoft.com/kb/172991/EN-USดาวน์โหลด MSVBVM50.CAB แยก DLL ไปยังโฟลเดอร์ที่เป็น IniCompare.exe
dangph

1
FYI, บทความ KB ที่เพิ่งบอกให้ดาวน์โหลดจากactivex.microsoft.com/controls/vb5/MSVBVM50.cabดังนั้นโปรดช่วยตัวเองด้วยขั้นตอน :-)
Ross Patterson

ดาวน์โหลดโดยตรงบนหน้าบรรณาธิการ: kokpeter.dds.nl/Download/index.htm#IniCompareหรือไฟล์โดยตรงโดยตรงkokpeter.dds.nl/Download/IniCompare_1_0_0.zip
Benj

3

คุณอาจใช้เครื่องมือเปรียบเทียบสำหรับสิ่งนั้นเช่นWinmergeเครื่องมือโอเพ่นซอร์สและเครื่องมือส่วนต่างฟรีสำหรับ Windows มันแสดงให้เห็นถึงสองไฟล์เคียงข้างกันการกำหนดความแตกต่าง

รองรับ Microsoft Windows 98/2000 / XP / 2003 / Vista / 7


1

ใช้ไฟล์เปรียบเทียบบรรทัดคำสั่งยูทิลิตี้ (ในหน้าต่างใด ๆ ) จากพรอมต์คำสั่ง (ป้อน cmd intor โต้ตอบเริ่มต้น / เรียกใช้)

fc inifile1.ini inifile2.ini 

ผลลัพธ์จะถูกพิมพ์ออกมาโดยอัตโนมัติ หากคุณต้องการตรวจสอบผลลัพธ์

fc inifile1.ini inifile2.ini > results.txt

หลังจากนั้นคุณจะเห็นรายงานในไฟล์ results.txt


+1 สำหรับการมาพร้อมกับโซลูชันที่ไม่ต้องใช้ซอฟต์แวร์เพิ่มเติม
TFM

2
-1 comming กับการแก้ปัญหาที่ไม่ตรงกับความต้องการ
แดเนียลโญ่

1

ฉันพบยูทิลิตี้ฟรีแวร์ windows lovelly เรียกว่าExamDiffวันอื่น ๆ ที่จะทำสิ่งที่คุณต้องการเป็นมิตรกับผู้ใช้และฟรี มันจะทำการเปรียบเทียบไดเรกทอรีถ้าคุณจ่ายสำหรับรุ่น 'โปร'


เฉพาะรุ่นที่ต้องชำระเงินเท่านั้นที่มีปลั๊กอินซึ่งคุณต้องใช้ในการเรียงลำดับ ini
dangph


1

ฉันใช้บริการนี้http://inicompare.io/

เปรียบเทียบมากกว่าสอง


โปรดอ้างอิงส่วนสำคัญของคำตอบจากลิงก์อ้างอิงเนื่องจากคำตอบอาจไม่ถูกต้องหากหน้าเว็บที่เชื่อมโยงมีการเปลี่ยนแปลงหรือเว็บไซต์เป้าหมายไม่สามารถเข้าถึงได้ / ออฟไลน์อย่างถาวร
DavidPostill

0

จริง ๆ แล้วฉันได้เขียนแอป CLI เพื่อจัดการกับปัญหานี้เมื่อฉันจัดการกับมันในที่ทำงานและนายจ้างของฉันก็ใจดีพอที่จะให้ฉันเปิดแหล่งที่มา:

https://github.com/Comcast/compare-ini-files

สิ่งนี้จะเปรียบเทียบไฟล์ ini ตั้งแต่ 2 ไฟล์ขึ้นไปและรายงานค่าที่แตกต่างกันและ stanzas ที่หายไป


0

สำหรับเหตุผลที่ฉันไม่พบสิ่งที่ฉันกำลังมองหาที่นี่วิธีการแก้งูหลามที่รวดเร็วและสกปรกของฉันบางทีมันอาจช่วยใครบางคน:

import configparser as cp

f1 = "org.ini"
f2 = "new.ini"

config1 = cp.ConfigParser()
config2 = cp.ConfigParser()
config1.read(f1)
config2.read(f2)

for section in config1.sections():
    if section not in config2.sections():
        print(section, "NOT in 2")
    else:
        for key in config1[section]:
            if key not in config2[section]:
                print("[miss] section", section, "key", key, "not in new")
            else:
                if config1[section].get(key).split(";")[0].strip() != config2[section].get(key).split(";")[0].strip():
                    print("[chang] section", section, "key", key, config1[section].get(key).split(";")[0].strip(),
                          "org != new", config2[section].get(key).split(";")[0].strip())
for section in config2.sections():
    if section not in config1.sections():
        print(section, "NOT in 1")
    else:
        for key in config2[section]:
            if key not in config1[section]:
                print("[miss] section", section, "key", key, "not in org")


0
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.