通过创建一个批处理文件将在文本文件中的变体字符串 [英] Insert a variant string in text files by creating a bat file

查看:298
本文介绍了通过创建一个批处理文件将在文本文件中的变体字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个问题,就是在<方式的解决问题的一个子集href=\"http://stackoverflow.com/questions/21845554/write-a-batch-file-to-get-a-directory-of-text-files-search-for-a-specific-token\">write批处理文件来获取文本文件的目录/搜索特定的标记,并插入后一行。

我需要从文件夹中读取一堆文本文件。找到一个特定的标记,如花冠为每个文本文件,并插入一个新的符合令牌后的变体。假设文本文件是这样的:

 第一线
第二行
第三行,卡罗拉的一部分,第三行剩余
将新1号线HERE
第四行,卡罗拉的一部分,河口湾剩余行
插入新行号2 HERE
文件的其余部分。

和做此操作的其他文件夹中也是如此。此外,我不希望变种被重置为每个文件。假设卡罗拉在第二个文件中找到这样的变体应在3开始。

非变体形式的解决方案是:

 关闭@echo
设置SrcFolder = C:\\输入
设置DstFolder = C:\\输出
对于一个%%在(%SrcFolder%\\ *。TXT),做(
  在(%% A)做(FOR / F有usebackq delims =%% H(
    呼应。%% ^ h
    回声%% H | FINDSTR花冠&GT; NUL&放大器;如果没有ERRORLEVEL 1(
      回声新线
    )
  ))&gt;中%DstFolder%\\ %%〜NXA

但我需要添加的变体为好。

感谢


解决方案

 关闭@echo
设置SrcFolder = C:\\输入
设置DstFolder = C:\\输出
设置变异= 0
对于一个%%在(%SrcFolder%\\ *。TXT),做(
  在(%% A)做(FOR / F有usebackq delims =%% H(
    呼应。%% ^ h
    回声%% H | FINDSTR花冠&GT; NUL&放大器;如果没有ERRORLEVEL 1(
      集/一个变种+ = 1
      SETLOCAL enabledelayedexpansion
      呼应新线!变!
      ENDLOCAL
    )
  ))&gt;中%DstFolder%\\ %%〜NXA

I have a problem which is a subset of a solved problem in write a batch file to get a directory of text files/ search for a specific token and insert a line after that.

I need to read a bunch of text files from a folder. find a specific token such as "Corolla" for each text file and insert a new line with a variant after the token. Suppose the text file is like:

first line
second line
a part of third line, Corolla, third line remaining
INSERT THE NEW LINE Number 1 HERE
a part of forth line, Corolla, firth line remaining
INSERT THE NEW LINE Number 2 HERE
The rest of file.

and do this operation for other files in the folder as well. Also I do not want the variant to be reset for each file. Suppose that Corolla is found in the second file so the variant should start at 3.

The solution to non-variant version is:

@echo off
set SrcFolder=C:\Input
set DstFolder=C:\Output
for %%a in ("%SrcFolder%\*.txt") do (
  (for /f "usebackq delims=" %%h in ("%%a") do (
    echo.%%h
    echo %%h|findstr "Corolla" >nul&if not errorlevel 1 (
      echo THE NEW LINE
    )
  ))>"%DstFolder%\%%~nxa"
)

But I need to add the variant as well.

Thanks

解决方案

@echo off
set SrcFolder=C:\Input
set DstFolder=C:\Output
set Variant=0
for %%a in ("%SrcFolder%\*.txt") do (
  (for /f "usebackq delims=" %%h in ("%%a") do (
    echo.%%h
    echo %%h|findstr "Corolla" >nul&if not errorlevel 1 (
      set /a "Variant+=1"
      setlocal enabledelayedexpansion
      echo THE NEW LINE !Variant!
      endlocal
    )
  ))>"%DstFolder%\%%~nxa"
)

这篇关于通过创建一个批处理文件将在文本文件中的变体字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆