gpt4 book ai didi

batch-file - 使用批处理文件修改文件内容

转载 作者:行者123 更新时间:2023-12-05 02:24:00 24 4
gpt4 key购买 nike

我需要创建一个批处理文件,我们可以使用它来修改文件的内容。

例如

Testing.txt 文件包含一行描述=MAN_Human改成描述=MAN_Human_V2

只在MAN的末尾加上(_V2)

因此,当我们打开文件时,我们有描述名称 MAN_Human_V2 而不是 MAN only。

我有多个文件要处理。请帮忙。

最佳答案

您可以使用 for 循环遍历文件的每一行,当您找到带有“Description”的行时,将“_V2”附加到输出。

@echo off

for %%f in (*.txt) do (
for /f "tokens=1* delims=:" %%g in ('type "%%f" ^| findstr /n /v "BoGuSsTrInG"') do (
if "%%hx"=="x" (
echo.>>"%%~nf.newtxt"
) else (
for /f "tokens=1* delims==" %%i in ('echo.%%h') do (
if "%%i"=="Description" (
echo.%%i=%%j_V2>>"%%~nf.newtxt"
) else (
if "%%jx"=="x" (
echo.%%i>>"%%~nf.newtxt"
) else (
echo.%%i=%%j>>"%%~nf.newtxt"
)
)
)
)
)
)

ren *.txt *.oldtxt
ren *.newtxt *.txt

当然,在处理test.txt文件的同时,还得将内容输出到一个新的文件中。然后用新创建的文件替换原始文件...

编辑#1

您必须先将 TXT 文件的内容完全复制到新文件中,然后才能将其中任何文件重命名回其原始名称。这是因为如果您立即重命名它们,for 循环将在它们被修改后再次拾取它们,其中一些将多次附加 _V2

我最后没有删除 .oldtxt 文件,因为在您知道该过程有效之前,您永远不应该销毁原始文件!

编辑#2

我发现有一种解决方法可以保留空行。解决方法是将文本文件的内容通过管道传送到 findstr,搜索所有不包含 BoGuSsTrInG 的行。输出包括行号(让它打印空白行的唯一方法)。行号有一个尾随冒号 (:),因此我们可以将输出分成不同的变量,将冒号上的内容分开。 tokens=1*将行号拆分到%%g变量中,行的结果在%%h变量中.我们可以测试%%h看它是否为空并在新文件中添加一个空行。否则,我们像以前一样处理 %%h

关于batch-file - 使用批处理文件修改文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17372805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com