Đếm số lượng dòng trong tệp bằng cách sử dụng lô


2

Tôi đang sử dụng tệp TrailerCount.bat để đếm số lượng dòng trong tệp văn bản bằng mã được đề cập bên dưới

@Echo off
::set newline=^& echo.

SET FilePath=%1

Set /a _Lines=0

For /f %%j in ('Type %FilePath%^|Find "" /v /c ') Do Set /a _Lines=%%j

(
echo TRAILER %_Lines% 
)>>%FilePath%

Ở đây khi tôi chuyển tệp txt làm đầu vào đầu tiên cho tệp bó. Sau khi chạy nó, nó mang lại cho tôi Đoạn giới thiệu là 8 trong dòng cuối cùng của Tệp văn bản, điều này đúng nếu chúng ta mở tệp văn bản với "NOTEPAD". Nhưng sử dụng "Notepad ++" thì nó phải là 11.

Tôi cần thay đổi gì để đếm các dòng trống, v.v. để có được số lượng trailer chính xác liên quan đến Notepad ++ ???

Câu trả lời:


3

Các tập tin lô đang hoạt động chính xác. findsẽ không đếm một dòng trừ khi nó có LFCR*ký hiệu Windows trên dòng. Bạn cần thay đổi tệp văn bản để có các LFCRký hiệu ở cuối mỗi dòng.

* LFCRLine Feed, Carriage Return.


@abhayk, nếu tệp không có các ký tự nguồn cấp dữ liệu (LF) và trả lại vận chuyển (CR) được sử dụng bởi Microsoft Windows, bởi vì nó được sản xuất trên máy tính sử dụng hệ điều hành khác, chẳng hạn như Linux, OS X, v.v., bạn có thể chuyển đổi từ biểu diễn dòng mới trên một hệ điều hành khác bằng các kỹ thuật được đề cập tại lệnh Windows để chuyển đổi unix eol sang windows eol
moonpoint
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.