ฉันจะแสดงเนื้อหาไฟล์ข้อความใน CMD ได้อย่างไร


227

ฉันต้องการแสดงเนื้อหาของไฟล์ข้อความในหน้าต่าง CMD นอกจากนี้ฉันต้องการเห็นบรรทัดใหม่ที่เพิ่มลงในไฟล์เช่นtail -fคำสั่งใน Unix



หากหนึ่งในคำตอบเหล่านี้แก้ปัญหาของคุณได้โปรดทำเครื่องหมายคำตอบ
Michael Yaeger

มีความเป็นไปได้ที่ซ้ำกันของการมองหาหน้าต่างที่เทียบเท่ากับคำสั่ง unix tail
Archmede

คำตอบ:


321

คุณสามารถใช้moreคำสั่ง ตัวอย่างเช่น:

more filename.txt

ดูอรรถประโยชน์ GNU สำหรับ Win32หรือดาวน์โหลด :


มันคล้ายกับ tail -f อย่างไร? หาง -f วนซ้ำตลอดไป คุณทำซ้ำ -f ของมันอย่างไร?
Elie Saad

2
นี่ไม่ได้ตอบคำถาม ไม่แน่ใจว่าทำไมมันถึงได้เรทสูง OP มองหา 2 สิ่ง - ทางเลือกสำหรับแมวและทางเลือกสำหรับหาง -f หากคุณกำลังจะติดตั้งโปรแกรมอรรถประโยชน์ GNU สำหรับ windows คุณสามารถใช้สิ่งเหล่านั้นได้
gburton

174

เราสามารถใช้คำสั่ง 'type' เพื่อดูเนื้อหาไฟล์ใน cmd

ตัวอย่าง -

type abc.txt

ข้อมูลเพิ่มเติมสามารถพบได้ที่นี่


ฉันชอบคำตอบนี้เพราะมันไม่ได้โต้ตอบ moreแสดงหน้าจอ N ครั้งที่คุณต้องคลิกผ่าน
user2023861

23

ฉันไม่คิดว่าจะมีฟังก์ชั่นในตัวสำหรับสิ่งนั้น

xxxx.txt > con

นี่เป็นการเปิดไฟล์ใน text editor เริ่มต้นใน windows ...

type xxxx.txt

แสดงไฟล์ในหน้าต่างปัจจุบัน บางทีนี่อาจมี params ที่คุณสามารถใช้ ...

มีคำถามที่คล้ายกันที่นี่: ชุดสคริปต์ CMD.EXE เพื่อแสดง 10 บรรทัดสุดท้ายจากไฟล์ txt ดังนั้นจึงมีคำสั่ง "more" เพื่อแสดงไฟล์จากบรรทัดที่กำหนดหรือคุณสามารถใช้ GNU Utilities สำหรับ Win32 สิ่งที่ bryanph แนะนำ ในลิงค์ของเขา


7

คุณสามารถใช้คำสั่ง'เพิ่มเติม'เพื่อดูเนื้อหาของไฟล์:

more filename.txt

2
ยินดีต้อนรับสู่ StackOverflow และขอขอบคุณที่พยายามช่วย โปรดอธิบายว่าสามารถใช้หน้าต่างรุ่นอื่น ๆ เพื่อดูบรรทัดที่มาถึงใหม่โดยอัตโนมัติในไฟล์ข้อความได้อย่างไร นั่นจะทำให้คำตอบของคุณเกี่ยวข้องโดยตรงกับคำถาม OPs มากขึ้นเช่นแสดงให้เห็นถึง "tail -f" - ความเข้ากันได้ของ OP ที่ต้องการ
Yunnosch

4

การใช้คำสั่ง PowerShell เดียวเพื่อดึงข้อมูลสิ้นสุดไฟล์:

powershell -nologo "& "Get-Content -Wait c:\logFile.log -Tail 10"

มันใช้กับ PowerShell 3.0 และใหม่กว่า

อีกตัวเลือกหนึ่งคือการสร้างไฟล์ชื่อ TAIL.CMD ด้วยรหัสนี้:

powershell -nologo "& "Get-Content -Wait %1 -Tail %2"

ใช้งานได้ แต่ช้าเกินไปเนื่องจาก PowerShell อาจใช้เวลา 2 หรือ 3 วินาทีในการเริ่มต้น
Anic17

2

ในการทำเช่นนี้คุณสามารถใช้เชลล์บรรทัดคำสั่งขั้นสูงของ Microsoft ชื่อ " Windows PowerShell " ควรมาเป็นมาตรฐานใน Windows รุ่นล่าสุด แต่คุณสามารถดาวน์โหลดได้จาก Microsoftหากคุณยังไม่ได้ติดตั้ง

ในการรับห้าบรรทัดสุดท้ายในไฟล์ข้อความเพียงอ่านไฟล์โดยใช้Get-Contentจากนั้นSelect-Objectเลือกห้ารายการ / บรรทัดสุดท้ายสำหรับคุณ:

Get-Content c:\scripts\test.txt | Select-Object -last 5

ที่มา: การใช้ Get-Content Cmdlet


คำตอบของ @Eyal นั้นเหมาะสมกว่าการเรียกจากคำสั่ง cmd และรหัสนั้นดีกว่าการใช้ Tail มากกว่าการ piping เข้าไปใน Select-Object คุณไม่สามารถทำได้ - รอขณะที่เลือกวัตถุด้วย นี่ไม่ใช่สิ่งที่ OP ร้องขอ
Elie Saad

1

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



1

หากคุณต้องการให้มันแสดงเนื้อหาของไฟล์สดและอัปเดตเมื่อไฟล์มีการเปลี่ยนแปลงเพียงแค่ใช้สคริปต์นี้:

@echo off
:start
cls
type myfile.txt
goto start

ที่จะทำซ้ำตลอดไปจนกว่าคุณจะปิดหน้าต่าง cmd


สิ่งนี้ไม่ได้จำลองการทำงานของหาง
Preet Sangha

1

คุณสามารถทำได้ในบางวิธี:

หนึ่งคือtypeคำสั่ง: type filename อีกหนึ่งคือmoreคำสั่ง: more filename ด้วยmoreคุณสามารถทำเช่นนั้น:type filename | more

ตัวเลือกสุดท้ายคือการใช้ตัวเลือกนี้จะใช้for for /f "usebackq delims=" %%A in (filename) do (echo.%%A) กับแต่ละบรรทัดและแสดงเนื้อหา นี่เป็นtypeคำสั่งที่เทียบเท่าแต่เป็นอีกวิธีหนึ่งในการอ่านเนื้อหา

หากคุณกำลังถามว่าจะใช้อะไรให้ใช้moreคำสั่งในการหยุดชั่วคราว


0

หากคุณต้องการแสดงชื่อไฟล์. config (หรือ. ini) ทั้งหมดและเนื้อหาไฟล์ลงในเอกสารเดียวสำหรับการอ้างอิงผู้ใช้ (และโดยที่ฉันหมายถึงผู้ใช้ที่ไม่ทราบคำสั่งเชลล์เช่น 95% ของพวกเขา) คุณสามารถลอง:

FORFILES / M * myFile.ini / C "cmd / c echo ชื่อไฟล์: @file >>% temp% \ stdout.txt && พิมพ์ @path >>% temp% \ stdout.txt && echo >>% temp% \ stdout.txt "| พิมพ์% temp% \ stdout.txt

คำอธิบาย: - ForFiles: วนรอบในไดเรกทอรี (และลูก ฯลฯ ) แต่ละเกณฑ์การประชุมไฟล์ - สามารถส่งคืนชื่อไฟล์ปัจจุบันเป็นกระบวนการ (@file) - สามารถส่งคืนไฟล์พา ธ แบบเต็มที่กำลังดำเนินการอยู่ (@path) - ประเภท: ส่งออกเนื้อหาไฟล์

Ps: คำสั่งไปป์สุดท้ายชี้ไปที่ไฟล์% temp% และส่งออกเนื้อหารวม หากคุณต้องการคัดลอก / วางในเอกสารบางอย่างเพียงแค่เปิดไฟล์ stdout.txt ใน textpad

ขอให้เป็นวันที่ดี.


โปรดใช้รหัสบล็อก `` `เพื่อวางรหัสของคุณเนื่องจากจะทำให้อ่านง่ายขึ้น
Anic17

-1
tail -3 d:\text_file.txt

tail -1 d:\text_file.txt

ฉันคิดว่านี่ถูกเพิ่มเข้ามาใน Windows cmd.exe


2
ไม่tailยังไม่ใช่คำสั่ง windows มาตรฐาน โดยปกติจะเป็นส่วนหนึ่งของ addon เช่น cygwin, GNU หรืออื่น ๆ
เตฟาน

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