2009-02-15 38 views

Trả lời

37
echo "my line" > newFile.txt 
type myOriginalFile.txt >> newFile.txt 
type newFile.txt > myOriginalFile.txt 

Chưa được kiểm tra. Double >> có nghĩa là 'append'

+0

Nó sẽ là "echo" thay vì "type" cho dòng đầu tiên nhưng cảm ơn, Nó hoạt động. –

+0

Er yeah, echo, sorry. :) Tôi chỉ xoay nó ra khỏi đầu của tôi trong trường hợp nó giúp bạn có được cùng nhanh hơn. – DarkwingDuck

8

Trình tự sau sẽ làm những gì bạn muốn, thêm dòng "new first line" vào tệp file.txt.

ren file.txt temp.txt 
echo.new first line>file.txt 
type temp.txt >>file.txt 
del temp.txt 

Lưu ý cấu trúc của tiếng vọng. "echo." cho phép bạn đặt dấu cách ở đầu dòng nếu cần và đặt ký tự chuyển hướng ">" đảm bảo không có dấu cách (trừ khi bạn muốn chúng).

+0

Rất tốt, nhưng trong trường hợp các tệp lớn, nó có thể kéo dài rất lâu - có cách nào thuận tiện hơn không? – matandked

5

Sau đây cũng sẽ làm việc:

echo "my line" > newFile.txt 
type newfile.txt myOriginalFile.txt > myOriginalFile.txt 

Trong dòng đầu tiên bạn đang viết dòng của tôi vào newfile.txt. Trong dòng thứ hai bạn đang thay thế văn bản từ myOriginalFile.txt bằng cách ghi đè nó bằng văn bản từ newfile.txt và myOriginalFile.txt, tạo một myOriginalFile.txt mới có chứa cả hai.

+0

Điều này không hoạt động (Thử nghiệm trên Win 7). Nội dung gốc bị mất và dòng mới được lặp lại trong nội dung cuối cùng. – dbenham

+0

Điều này có vẻ như một cách tiếp cận mạo hiểm vì, nếu có gì sai trong dòng thứ hai, bạn sẽ bị hỏng myOriginalFile.txt –

+1

@StephenLead - nó tệ hơn rủi ro - nó không bao giờ hoạt động. – dbenham

11

Một biến thể khác về chủ đề.

(echo New Line 1) >file.txt.new 
type file.txt >>file.txt.new 
move /y file.txt.new file.txt 

Ưu điểm so với khác được đăng câu trả lời:

  • số lượng tối thiểu các bước
  • không có tập tin tạm thời còn sót lại
  • ngoặc ngăn không gian dấu không mong muốn trong dòng đầu tiên
  • lệnh di chuyển "ngay lập tức "thay thế phiên bản cũ bằng
  • tệp gốc mới không thay đổi cho đến khi e tức thì cuối cùng khi được thay thế
  • nội dung cuối cùng chỉ được viết một lần - có khả năng quan trọng nếu tệp lớn.
+0

upvote cho paranthesis, cho phép để kèm theo một loạt toàn bộ – AdrianBR

1

Nếu phần đầu tiên của dòng có thể được sắp xếp, chẳng hạn như ngày/giờ, sau đó sử dụng lệnh SORT/R để đặt các mục nhập gần đây nhất ở đầu tệp. Sau đây sẽ đặt một dấu ngày/giờ theo hình thức "YYYY-MM-DD HH: DD: SS AM/PM" để bắt đầu mỗi dòng:

echo %DATE:~-4%-%DATE:~7,2%-%DATE:~4,2% %TIME% "my text line" >> myOriginalFile.txt 
sort /R myOriginalFile.txt /O myOriginalFile.txt 

Tuy nhiên, như các file phát triển rất lớn phương pháp này (cũng như các phương pháp trên) trở nên chậm. Chỉ xem xét sắp xếp khi được yêu cầu thay vì với mỗi mục nhập - hoặc sử dụng ngôn ngữ lập trình/tập lệnh khác

Các vấn đề liên quan