首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在指定字符串后通过CMD向文件中添加一行?

在 Windows 的命令提示符(CMD)中,你可以使用多种方法在指定字符串后向文件中添加一行。以下是几种常见的方法:

方法 1:使用 findstrfor 循环

你可以使用 findstr 命令找到指定字符串所在的行,然后使用 for 循环和 echo 命令将新行添加到文件中。

假设你有一个文件 example.txt,内容如下:

代码语言:javascript
复制
line 1
line 2
line 3

你想在 line 2 后添加一行 new line

代码语言:javascript
复制
@echo off
setlocal enabledelayedexpansion

set "search=line 2"
set "newline=new line"
set "tempfile=temp.txt"

(for /f "tokens=*" %%A in (example.txt) do (
    echo %%A
    if "%%A"=="%search%" echo %newline%
)) > %tempfile%

move /y %tempfile% example.txt

方法 2:使用 PowerShell

你也可以使用 PowerShell 脚本来实现这一点。PowerShell 提供了更强大的文本处理功能。

代码语言:javascript
复制
powershell -Command "& {
    $filePath = 'example.txt';
    $search = 'line 2';
    $newLine = 'new line';
    $content = Get-Content $filePath;
    $newContent = @();
    foreach ($line in $content) {
        $newContent += $line;
        if ($line -eq $search) {
            $newContent += $newLine;
        }
    }
    $newContent | Set-Content $filePath;
}"

方法 3:使用 sed(适用于 Git Bash 或 Cygwin)

如果你在 Windows 上安装了 Git Bash 或 Cygwin,你可以使用 sed 命令来实现这一点。

代码语言:javascript
复制
sed '/line 2/a new line' example.txt > temp.txt && mv temp.txt example.txt

方法 4:使用 awk(适用于 Git Bash 或 Cygwin)

同样地,如果你在 Windows 上安装了 Git Bash 或 Cygwin,你可以使用 awk 命令来实现这一点。

代码语言:javascript
复制
awk '{print} /line 2/ {print "new line"}' example.txt > temp.txt && mv temp.txt example.txt
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 技术栈系列基础篇7-linux常见命令

    常用命令选项-F fs fs指定输入分隔符,fs可以是字符串或正则表达式,-F:-v var=value 赋值一个用户定义变量,将外部变量传递给awk-f scripfile 从脚本文件读取awk命令...host到登陆文件-G,–login-path=name 在登录文件为login path添加名字(默认为client)-p,–password 在登陆文件添加密码(该密码会被mysql_config_editor...自动加密)-u,–user 添加用户名到登陆文件-S,–socket=name 添加sock文件路径到登陆文件-P,–port=name 添加登陆端口到登陆文件显示配置:mysql_config_editor...host到登陆文件-G,–login-path=name 在登录文件为login path添加名字(默认为client)-p,–password 在登陆文件添加密码(该密码会被mysql_config_editor...自动加密)-u,–user 添加用户名到登陆文件-S,–socket=name 添加sock文件路径到登陆文件-P,–port=name 添加登陆端口到登陆文件重置配置:mysql_config_editor

    82320

    ADO.NET入门教程(六) 谈谈Command对象与数据检索

    ',/*物理文件名称*/ SIZE = 10,/*指定文件大小,单位MB*/ MAXSIZE = 50,/*文件最大值,单位MB*/ FILEGROWTH = 5 /*自动增量*/ ) LOG...我们可用通过string字符串来构造一条SQL语句,也可以通过Connection对象指定连接的数据源。那么我们如何将这些信息交给Command对象呢?一般来说,有两种方法: (1)通过构造函数。...从上面输出信息我们可以看到,已经成功的添加一行数据。...我们可以看到在 场景(一) 添加的数据。...它数据库传达了用户的操作信息,而数据库则通过Command对象向用户返回处理结果。在下一篇文章,我将讲解Command对象的一些高级应用,希望大家能继续关注和推荐。

    1.4K71

    C++ Qt开发:StringListModel字符串列表映射组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QStringListModel...该组件通常会配合ListView一起使用,例如将ListView组件与Model模型绑定,当ListView组件内有数据更新时,就可以利用映射将数据模型的数值以字符串格式提取出来,同理也可实现将字符串赋值到指定的...以下是该代码的一些说明: 在构造函数,首先使用 QStringList theStringList 创建了一个字符串列表,并向其中添加了一些城市名称。...ListView组将将被初始化为城市地址,如下图所示; 1.2 添加与插入 如下代码演示了如何在 MainWindow 通过按钮的点击事件 QStringListModel 添加或插入数据。...这样,通过这两个按钮的点击事件,可以 QStringListModel 添加或插入数据,并在 QListView 中进行显示。

    22510

    Linux命令(34)——vim命令

    ; P:大写P,粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方; /[字符串]:文本查找操作,用于从当前光标所在位置开始文件尾部查找指定字符串的内容,查找的字符串会被加亮显示; ?...[字符串]:文本查找操作,用于从当前光标所在位置开始文件头部查找指定字符串的内容,查找的字符串会被加亮显示; :a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将每行第一个F字符串换成T字符串...多数文件管理命令都是在此模式下执行的(把编辑缓冲区的内容写到文件中等)。末行命令执行完,Vim自动回到命令模式。...4.3vim读写文件时编码转换过程 (1)读文件 vim打开文件时,需要将磁盘文件内容载入缓存,并将缓存的字符转为换终端编码,通过网络传输的方式,传输到终端进行显示。...如果想在每一行执行相同的命令,在 vim 里可以用 :g 实现。一般的语法是: :g/pattern/cmd 它表示在匹配 /pattern/ 这个正则表达式的行上执行 cmd 命令(也称冒号命令)。

    3.4K20

    windows批处理命令教程的书籍有哪些_windows脚本命令

    3.Goto 命令 指定跳转到标签,找到标签,程序将处理从下一行开始的命令。 语法:goto label (label是参数,指定所要转向的批处理程序的行。)...然后用已找到的符号字符串变量值调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。您可通过指定可选 “options”参数替代默认解析*作。...通过 nth 符号指定 m 符号字符串的最后一个字符星号,那么额外的变量将在最后一个符号解析之分配并接受行的保留文本。...usebackq – 指定新语法已在下类情况中使用:在作为命令执行一个引号的字符串并且引号字符为文字字符串命令并允许在 fi中使用双引号扩起文件名称。...%i 专门在 for 语句中得到说明,%j 和 %k 是通过tokens= 选项专门得到说明的。您可以通过 tokens= 一行指定最多 26 个符号,只要不试图说明一个高于字母 z 或Z 的变量。

    5K10

    windows bat批处理基础命令学习教程「建议收藏」

    2) 传递参数给批处理文件 %[1-9]表示参数,参数是指在运行批处理文件时在文件加的以空格(或者Tab)分隔的字符串。...3.Goto 命令 语法:goto label (label是参数,指定所要转向的批处理程序的行。) 指定跳转到标签行,找到标签行,程序将处理从下一行开始的命令。...通过 nth 符号指定 mth。 如果符号字符串的最后一个字符星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。...usebackq – 指定新语法已在下类情况中使用: 在作为命令执行一个引号的字符串并且一个单引号字符为文字字符串命令并允许在 filenameset中使用双引号扩起文件名称。...:请按任意键继续…. if 在批处理程序执行条件处理(更多说明见if命令及变量) goto 标签 将cmd.exe导向到批处理程序带标签的行(标签必须单独一行,且以冒号打头,例如:“:start”标签

    17.7K34

    Linux基础——正则表达式

    3、增加行:a命令(在指定的行新增)或 i命令(在指定的行前新增)a的后面可以接字符串,而这些字符串会在新的一行出现在/etc/passwd的第二行增加“XXXXX”字样的新行 ?...创建 sed 脚本文件append.sed,通过 sed 脚本 test.txt 中新增内容,脚本内容如下: ?...相较于 sed 常常作用于一整个行的处理, awk 则比较倾向于一行当中分成数个字段来处理。 .awk 语言的最基本功能是在文件字符串基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。...⑤当一条输入记录比较了所有的awk_cmd,awk读取输入的下一行,继续重复步骤③和④,这个过程一直持续,直到 awk读取到文件尾。...例3:如果只是显示/etc/passwd文件的UID大于500的用户名和登录shell,而账户与 shell之间以逗号分割,而且在所有行添加列名 name,shell,在最后一行添加"blue,/bin

    4.3K30

    听GPT 讲K8s源代码--cmd(四)

    AddKubeConfigDirFlag: KubeADM 添加 --kubeconfig-dir 标志,用于指定 kubeconfig 文件的目录路径,这个目录的所有 kubeconfig 文件将被自动加载...AddConfigFlag: KubeADM 添加 --config 标志,用于指定 kubeadm 配置文件的路径,kubeadm 配置文件用于配置 KubeADM 工具自身的行为。...AddKubeadmOtherFlags: KubeADM 添加 --kubeadm-other-flags 标志,用于指定其他未涵盖在前述函数的命令行选项。...AddPatchesFlag: KubeADM 添加 --patches 标志,用于指定一个包含自定义 YAML 配置文件的目录路径,这些配置文件将被应用到生成的 Kubernetes 配置。...将kubeconfig配置文件的所有数据读取通过REST API上传到etcd,用于存储集群的配置信息。 检查上传结果状态,如果上传失败则输出错误信息。

    27040

    cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置)

    我们都知道如何在 cmd.exe 启动一个程序,但是当你需要自动启动这个程序的时候,你就需要知道如何通过 cmd.exe 来启动一个程序,而不是手工输入然后回车运行了。...string] /C 执行字符串指定的命令然后终止 /K 执行字符串指定的命令但保留 /S 修改 /C 或 /K 之后的字符串处理(见下) /Q 关闭回显 /D 禁止从注册表执行 AutoRun 命令...(见下) /A 使管道或文件的内部命令输出成为 ANSI /U 使管道或文件的内部命令输出成为 Unicode /T:fg 设置前台/背景颜色(详细信息见 COLOR /?)...你 可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有 调用的延迟扩展,这要通过设置使用 REGEDIT.EXE 的注册表的 一个或两个 REG_DWORD 值: 1 2 3 4...你可以在计算上和/或 用户登录会话上启用或禁用 CMD.EXE 所有调用的完成, 这可以通过使用 REGEDIT.EXE 设置注册表的下列 REG_DWORD 的全部或其中之一: 1 2 3 4

    3K20

    【共读】Linux网络安全精要之基础知识

    安全提醒: 可以认为每次操作系统添加软件都会添加潜在安全风险,所以要对相应的软件进行正确的安全加固,尤其是提供给用户访问的软件尤为重要。...可用通过history命令查看,例如列出最后5个命令: 常用的命令选项: -c :清空当前历史命令列表 -r :读取用于保存历史命令文件的内容 -w:将当前的历史命令列表写入到历史命令文件 过你想执行历史命令列表的一个命令...重定向方法: 方法 描述 cmd < file 指定文件内容替代输入 cmd > file 输出到指定文件 cmd 2>file 错误输出到指定文件 cmd &> file 输出和错误输出同时输到指定文件...此命令是在文件逐行查找包含指定模式的行。.../etc/motd文件 登陆进系统,提示的信息在此文件编辑。

    94710

    【共读】Linux网络安全精要之基础知识

    安全提醒: 可以认为每次操作系统添加软件都会添加潜在安全风险,所以要对相应的软件进行正确的安全加固,尤其是提供给用户访问的软件尤为重要。...可用通过history命令查看,例如列出最后5个命令: 常用的命令选项: -c :清空当前历史命令列表 -r :读取用于保存历史命令文件的内容 -w:将当前的历史命令列表写入到历史命令文件 过你想执行历史命令列表的一个命令...重定向方法: 方法 描述 cmd < file 指定文件内容替代输入 cmd > file 输出到指定文件 cmd 2>file 错误输出到指定文件 cmd &> file 输出和错误输出同时输到指定文件...此命令是在文件逐行查找包含指定模式的行。.../etc/motd文件 登陆进系统,提示的信息在此文件编辑。

    1.2K30

    window cmd 命令大全 (order) Windows CMD命令大全

    if 在批处理程序执行条件处理(更多说明见if命令及变量)   goto 标签 将cmd.exe导向到批处理程序带标签的行(标签必须单独一行,且以冒号打头,例如:“:start”标签)   call...在本地机执行交互shell,exit回到ftp环境,!...user:user ip为%1,pass为%2 ,user为%3   (set):指定一个或一组文件,可使用通配符,:(D:user.txt)和(1 1 254)(1 -1 254),{ “(1 1...IF [not] 字符串1==字符串2 命令语句 如果指定的文本字符串匹配(即:字符串1 等于 字符串2),就执行后面的命令。   ...当有del命令时需把del命令全部内容用括起来,因为del命令要单独一行时才能执行,用上就等于是单独一行了;例如:“if exist test.txt.

    13.3K20

    一天一个 Linux 命令(1):vim 命令

    三、选项说明 +NUM 打开文件时光标跳转到由 NUM 指定的行首 +/PAT 打开文件时光标跳转到匹配的模式字符串 PAT +, -c CMD 在完成对第一个文件的读取,执行给出的指令 -b...用于从当前光标所在位置开始文件尾部查找指定字符串的内容,查找的字符串会被加亮显示。键入字符 n 跳转到下一个,N 跳转到前一个 ?[字符串]:向前搜索,支持正则表达式。...用于从当前光标所在位置开始文件头部查找指定字符串的内容,查找的字符串会被加亮显示。键入字符 n 跳转到下一个,N 跳转到前一个 :a,bs/F/T:替换文本操作,将a到b行之间第一个F换成T字符串。...多数文件管理命令都是在此模式下执行的(把编辑缓冲区的内容写到文件中等)。命令执行完,vim 自动回到正常模式。...5.3 vim 读写文件时编码转换过程 (1)读文件 vim打开文件时,需要将磁盘文件内容载入缓存,并将缓存的字符转为换终端编码,通过网络传输的方式,传输到终端进行显示。

    84410

    Dockerfile关键词实验演示:

    用缓存镜像提高效率FROM(指定基础镜像 image)作用:必须放在第一行,一个dockerfile只能有一个FROM关键字FROM指定基础镜像,每一个定制镜像,必须以一个现有镜像为基础。...字符串包含空格需要转义或包含在引号中使用格式:LABEL(关键字)+key=valule 的格式(如果值中间有空格比较奇怪的,用双引号隔起来,表示是一整个字符串)# 指令将元数据添加到镜像。...我们知道容器使用的是 AUFS,这种文件系统不能持久化数据,当容器关闭,所有的更改都会丢失。...,这样ENTRYPOINT和CMD指定的命令都会在容器这个目录下进行。...CMD指定容器的启动命令。容器实质就是进程,进程就需要启动命令及参数,CMD指令就是用于指定默认的容器主进程的启动命令的。

    97120

    【干货分享】dos命令大全

    if 在批处理程序执行条件处理(更多说明见if命令及变量) goto 标签 将cmd.exe导向到批处理程序带标签的行(标签必须单独一行,且以冒号打头,例如:“:start”标签) call.../user:user ip为%1,pass为%2 ,user为%3 (set):指定一个或一组文件,可使用通配符,:(D:user.txt)和(1 1 254)(1 -1 254),{ “(1 1...IF [not] 字符串1==字符串2 命令语句 如果指定的文本字符串匹配(即:字符串1 等于 字符串2),就执行后面的命令。...当有del命令时需把del命令全部内容用括起来,因为del命令要单独一行时才能执行,用上就等于是单独一行了;例如:“if exist test.txt. else echo test.txt.missing...FTP使用的内部命令如下(括号表示可选项): 1.![cmd[args]]:在本地机执行交互shell,exit回到ftp环境,:!

    1.9K90

    shell脚本扩展「建议收藏」

    3.增加行:a命令(在指定的行新增)或i命令(在指定的行前新增) a的后面可以接字符串,而这些字符串会在新的一行出现 在/etc/passwd的第二行增加“XXXXX”字样的新行 在/etc/passwd...相较于 sed 常常作用于一整个行的处理, awk 则比较倾向于一行当中分成数个字段来处理。 .awk语言的最基本功能是在文件字符串基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。...这是一个awk动作 awk的运行过程: 1 如果BEGIN 区块存在,awk执行它指定的actions。 2 awk从输入文件读取一行,称为一条输入记录。...5 当一条输入记录比较了所有的awk_cmd,awk读取输入的下一行,继续重复步骤③和④,这个过程一直持续,直到awk读取到文件尾。...例3:如果只是显示/etc/passwd文件的UID大于500的用户名和登录shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加”blue,/bin/

    5.8K20

    有趣的10个CMD命令「建议收藏」

    然后用已找到的符号字符串变量值调用 For 循环。 以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。 你可通过指定可选 "options" 参数替代默认解析操作。...通过 nth 符号指定 mth。如果 符号字符串的最后一个字符星号, 那么额外的变量将在最后一个符号解析之后 分配并接受行的保留文本。...usebackq - 指定新语法已在下类情况中使用: 在作为命令执行一个引号的字符串并且一个单 引号字符为文字字符串命令并允许在 file-set 中使用双引号扩起文件名称。...可以通过 tokens= 一行 指定最多 26 个符号,只要不试图声明一个高于字母 "z" 或 "Z" 的变量。...方法是,将 括号之间的 file-set 变成一个反括字符串。该字符串会 被当作命令行,传递到一个子 CMD.EXE,其输出会被捕获到 内存,并被当作文件分析。

    5.9K10
    领券