需要使用批处理文件将某个部分从一个txt文件复制到另一个txt文件

时间:2017-08-10 06:45:23

标签: batch-file

您好我是新来写批处理文件所以请帮帮我 我有一个包含以下数据的txt文件:

\nwe data 
test data and
othere files
resrt 
/* 20170804 */
test data
new line and work
only work 
new test
online
master
/*letest*/

我想将数据从/* 20170804 */复制到/*letest*/。如何将数据复制到另一个txt文件?

2 个答案:

答案 0 :(得分:0)

查看gawk.exesed.exe等命令行工具,这些工具使用正则表达式搜索模式并处理文件。

例如gawk "/\/\* 20170804 \*\//{flag=1;next}/\/\*letest\*\//{flag=0}flag" C:\temp\data.txt > C:\temp\out.txt 使用标记来打印行。

getTokenHeader() {
    return this.afAuth.auth.currentUser.getIdToken()
    .then(token => {
        let params = new URLSearchParams();
        params.set('tsid', `Bearer ${token}`);
        return params;
    });
}

答案 1 :(得分:0)

首先,创建逻辑:

for every line in the text file do  
  If the line is the start string, set a flag.   
  If flag is set, print the line.   
  If the string is the stop string, delete the flag.  
continue with next line.

然后将整个循环的所有输出重定向到文件。

@echo off
setlocal 
set "flag="
(for /f "delims=" %%a in (t.txt) do (
  if "%%a"== "/* 20170804 */" set "flag=yes"
  if defined flag echo %%a
  if "%%a"== "/*letest*/" set "flag="
))>out.txt

注意:这适用于您的示例。如果有特殊字符或者你想保留空行,则需要更多代码。