1. 程式人生 > >bat應用----刪除前三行合並文件

bat應用----刪除前三行合並文件

findstr LEDE ble 不同 刪除 pau types 文件 文件復制

我有兩個文件夾Types和TypeBodies,裏面有同名的文件(後綴不同),否則只在Types裏面。我需要刪除每個文件裏面前三行註釋的內容,然後把TypeBodies的文件內容放到Types裏的同名文件後。

  • 刪除所有文件的前三行
@echo off&setlocal enabledelayedexpansion
rem 刪除Types、TypeBodies文件夾裏的前三行
rem 遍歷TypeBodies中的所有文件
for /r .\TypeBodies %%i in (*) do (
    echo %%i
    rem 按行讀取文件內容,跳過前三行;‘findstr .* %%i‘查找文件所有內容,包括空格和空行
    for /f "skip=3 delims=" %%j in (‘findstr .* %%i‘) do (
        rem 按行寫到$
        echo;%%j>>$
    )
    rem 把$中內容寫到原文件
    move $ %%i
)
pause
  • 合並同名文件
@echo off&setlocal enabledelayedexpansion
rem 把TypeBodies裏的文件復制到Type的同名文件後邊
rem 遍歷Types裏的文件
for /r .\Types %%i in (*) do (
    echo %%~ni
    rem 如果TypeBodies裏存在同名文件,合並兩個文件,並放到Types文件夾
    if exist .\TypeBodies\%%~ni.tpb copy /b %%i+.\TypeBodies\%%~ni.tpb %%i
)
pause

bat應用----刪除前三行合並文件