Bộ chuyển đổi EOL như một phần mở rộng vỏ


2

Tôi đang tìm kiếm một trình chuyển đổi EOL cho Windows với tích hợp Explorer để tôi có thể chỉ cần nhấp chuột phải vào một tệp và chọn loại kết thúc dòng nào tôi muốn chuyển đổi. Tôi thường chạy vào các tệp có kết thúc dòng không nhất quán và Subversion từ chối và cam kết chúng cho đến khi tôi sửa chúng.


Bạn có muốn chia sẻ một tập tin mẫu? Bằng cách này tôi có thể kiểm tra một số giải pháp dễ dàng hơn.
nixda

Đây là một tệp có kết thúc dòng hỗn hợp: dl.dropbox.com/u/2113034/crlf.txt
JesperE

Câu trả lời:


2

Với giải pháp này, bạn có thể nhấp chuột phải vào bất kỳ tệp nào và chuyển đổi từ ngắt dòng LF(Unix, Linux, Mac OS X) sang CR+LF(Windows)

  1. Tạo một tệp .CMD ở đâu đó và dán đoạn mã sau

    SET "output=%~1"
    SET "search=\%~n1."
    SET "replace=\%~n1 (CR+LF)."        
    CALL SET "output=%%output:%search%=%replace%%%"
    
    TYPE "%~1" | FIND "" /V > "%output%"
    

    Dòng 1-4 chỉ để đổi tên tệp đầu ra một cách chính xác và nối "(CR + LF)" vào tên tệp
    Bạn có thể đọc thêm về các đối số lô tại đây.
    Điều quan trọng là TYPEbiết cách đọc kết thúc dòng LF

  2. Lưu một lối tắt từ tệp .CMD trong thư mục sendto của bạn ( Win+ R»shell: sendto)

Để biết thêm các hướng chuyển đổi, hãy tải xuống tiện ích dòng lệnh dos2unix và sử dụng nó giống như cách hiển thị ở trên. Chỉ cần thay thế dòng cuối cùng. Cú pháp luôn giống nhau.

dos2unix "%~1" "%output%"
mac2unix "%~1" "%output%"  
unix2dos "%~1" "%output%"  
unix2mac "%~1" "%output%"  

Notepad ++ có một tùy chọn chuyển đổi EOL tiện dụng nhưng tôi đoán bạn đã biết điều đó và nó không đủ thoải mái và đủ nhanh để mở, chuyển đổi và lưu tệp. Thật không may, notepad ++ không cung cấp các chuyển đổi dòng lệnh cho tác vụ cụ thể đó.

nhập mô tả hình ảnh ở đây


Thật không may, Notepad ++ không thể chuyển đổi các tệp có kết thúc dòng hỗn hợp. Nếu có cả LF và CRLF trong một tệp, nó sẽ từ chối chuyển đổi trực tiếp sang Windows. Trước tiên bạn phải chuyển đổi sang Unix, sau đó quay lại Windows. Làm phiền.
JesperE

Tôi đã chọn cho biến thể "unix2dos". Biến thể "TYPE" không hoạt động. Nó sẽ phát hiện chính xác tập tin với các quy ước EOL hỗn hợp?
JesperE

Hmm, tôi đã thử nghiệm phương thức TYPE chỉ trong giây này với tệp thử nghiệm của bạn. Nó hoạt động khá tốt. Dưới đây là màn hình bằng chứng cho phương pháp TYPE
nixda

Tôi tò mò về những gì đã sai trong thiết lập thử nghiệm của bạn. Tôi không thể tái tạo hành vi của bạn. Bạn có thể giải thích nó nhiều hơn?
nixda

Có lẽ, nếu tôi có thể ép trong một thời gian để thử nghiệm một chút. Có cách nào để giữ cho cửa sổ cmd mở sau khi lệnh kết thúc không?
JesperE
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.