batch-file - 使用批处理脚本搜索然后用 txt 文件中的变量替换整行

标签 batch-file

我正在尝试创建一个 .bat 文件,它将用整行文本替换一组变量(按顺序)。

我曾经从文件 'variables.txt' 中提取 3 行文本的数组:

    @echo off
    setlocal ENABLEDELAYEDEXPANSION
    set vidx=0
    for /F "tokens=*" %%A in (variables.txt) do (
SET /A vidx=!vidx! + 1
set var!vidx!=%%A
    )
    set var

我想扫描文件“export.txt”,当它第一次遇到“client”这个词时,我想用第一个变量替换整行。

第二次遇到“客户”这个词时,我希望它用第二个变量(依此类推)替换整行。

我真的很难过,并且不确定 for/F 序列中的多个变量。

最佳答案

你快到了,你只需要循环遍历包含 client 的行。

set vidx=0
for /F "tokens=*" %%A in ('findstr "client" export.txt') do (
SET /A vidx=!vidx! + 1
set var!vidx!=%%A
)
set var

对于 export.txt 文件:
blah
client test1 test1
blah blah blah
client test2 test 2
blah blah
blah
test client test3

输出是:
var1=client test1 test1
var2=client test2 test 2
var3=test client test3

关于batch-file - 使用批处理脚本搜索然后用 txt 文件中的变量替换整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12826387/

相关文章:

batch-file - 从bat文件关闭chrome

javascript - 如何使用 REST api 删除带有 angularjs 的集合?

file - 需要创建批处理文件以从文件夹中选择一个随机文件并复制到另一个文件夹

batch-file - %%a 是什么意思? (批)

batch-file - 检查文件是否存在,然后将数字附加到名称

windows - Perl:为什么我会收到错误 "The file name, directory name, or volume label syntax is incorrect."

batch-file - Windows 批处理 : variable is lost after running another batch file

c - 为什么通过 cmd 运行可执行文件不会调用 system() 调用?

windows - 为什么我的 stderr 重定向在命令完成后没有结束?我该如何解决?

mysql - .bat 文件自行运行,但在计划任务调用时不运行