ฉันต้องการเขียนข้อความในบรรทัดเฉพาะของไฟล์เช่นฉันต้องการเขียนในบรรทัดที่ 12 และ 13 และฉันต้องทำทุก 5 วินาที
จะทำอย่างไรโดยใช้สคริปต์แบทช์
ฉันต้องการเขียนข้อความในบรรทัดเฉพาะของไฟล์เช่นฉันต้องการเขียนในบรรทัดที่ 12 และ 13 และฉันต้องทำทุก 5 วินาที
จะทำอย่างไรโดยใช้สคริปต์แบทช์
คำตอบ:
หากคุณมีความเป็นไปได้ที่จะติดตั้ง cygwin หรือ msys คุณสามารถใช้สคริปต์ sed เช่น:
while :; do sleep 5; sed -e "12s/.*/replaced/" somefile.txt; done
จะแทนที่บรรทัดที่ 12 ของ somefile.txt ด้วย "แทนที่" ทุก 5 วินาที
เป็นไปได้และวิธีที่ง่ายที่สุด (imho) ที่น่าสนใจคือการใช้เครื่องมือ * nix ซึ่งมาจากโครงการ GnuWin32ในตัวอย่างนี้ เมื่อคุณทำสิ่งต่อไปนี้จากcmd.exe
:
\path\to\sed.exe -i -e '12s/.*/replaced/' \path\with\files\*
for
ใช้set
เพื่อเก็บตัวนับเพื่อให้คุณสามารถเขียนสิ่งต่าง ๆ ที่อยู่ในไฟล์ต้นฉบับแล้วเขียนทับ ต้นฉบับพร้อมไฟล์ temp คุณสามารถใช้เครื่องมือภายนอกอื่นได้หรือไม่