2014-12-07 88 views
0

此代碼很好用,但我需要將文件名添加到它寫入的每一行的前面。批量複製文件名和第一行多個文本文件

這將如何完成?

從主題: batch to copy FIRST line of multiple text files


這使用從findrepl.bat叫幫手批處理文件 - 在同一個文件夾中的批處理文件或路徑上https://www.dropbox.com/s/rfdldmcb6vwi9xc/findrepl.bat

廣場findrepl.bat。

@echo off 
set linenum=1 
for %%a in (*.txt) do (
    type "%%a"|findrepl /o:%linenum%:%linenum% >>tmp.tmp 
) 
move /y tmp.tmp "Result.txt" 

回答

1
@echo off 
(
for %%a in (*.txt) do (
set "first=" 
for /f "usebackq delims=" %%b in ("%%a") do if not defined first (
    echo(%%a %%b 
    set first=Y 
) 
) 
)>"Result.txt" 

應該爲你工作。


到一個名爲「的Result.txt」
一個新的文件 - 對於每個文件(名稱%%a
-
清除標誌 - 讀取文件中的行由行至%%b ;如果該標誌是明確echo文件名 和線讀取並設置標誌,以便沒有進一步的線再現

使用

usebackq因爲%%a被引用。如果它包含分隔符字符,則引用%%a

+1

@ bjb568:我假設你是倒票的來源。我會聲稱這個問題只是簡單地詢問如何將源文件名添加到提交的批處理文件中。事實上這是一個比許多更好的結構化問題。我的迴應顯示瞭如何做 - 可能更容易。響應解決了問題標題中所述的問題,所以任何想顯示文件名和第一行來自多個文本文件的人都會找到它。因此它對更廣泛的社區有用。 – Magoo 2014-12-07 22:17:21

+1

請解釋爲什麼你的答案是對問題的解決方案。 – Qix 2014-12-07 22:29:47

相關問題