簡體   English   中英

Windows批處理文件腳本從目錄中的所有文本文件中提取第三行

[英]windows batch file script to extract third line from all text files in a directory

我需要一個Windows批處理腳本文件,以從目錄中的所有文本文件中提取第三行並將其輸出到單獨的文本文件中。 誰能幫我寫一個批處理文件來提取此信息? 我對此很初級。 謝謝!

這是可行的,但只有一點點技巧。

首先,您需要創建一個批處理文件thirdline.cmd

@echo off
for /f "skip=2 delims=" %%i in (%1) do echo %%i & goto :EOF

然后, 從命令行執行以下操作:

for %i in (*.*) do @thirdline "%i"

如果要從另一個批處理文件中執行此操作,則需要將上面的%i更改為%%i (即,它們出現在thirdline.cmd )。

切記用與要處理的文件匹配的文件掩碼替換*.*

最后, thirdline.cmd給出的thirdline.cmd只會將第三行輸出到控制台。 如果要將其寫入另一個文件(例如, lines.txt ), thirdline.cmd更改為:

@echo off
for /f "skip=2 delims=" %%i in (%1) do >>lines.txt echo %%i & goto :EOF

只是作為替代,這是另一種方法:

SETLOCAL
(FOR /L %%i IN (1,1,3) DO SET /P line=) < filename.txt
> another.txt ECHO %line%
ENDLOCAL

每當您不確定要在腳本中引入的變量是否不會與系統定義的或由調用批處理腳本帶來的已存在變量沖突時,請使用SETLOCALENDLOCAL 基本上,使用它們只是為了安全起見。 (感謝喬恩的建議!)

如果您有選擇,這里有一個Ruby for Windows襯板

$ ruby -ne "ARGF.lineno=0 if ARGF.eof?; print if ARGF.lineno==3" *.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM