gpt4 book ai didi

windows - 用于替换多个文件中特定字符串的批处理脚本

转载 作者:可可西里 更新时间:2023-11-01 11:24:49 26 4
gpt4 key购买 nike

我对批处理脚本没有太多经验,我的雇主要求我编写一个可以运行的批处理脚本来查找和替换目录中所有匹配文件中的一些文本。

我已经尝试搜索这个并且有大量的资源,我已经用它来让我走到这一步:

@echo off 
setlocal enableextensions disabledelayedexpansion

set "search=<employeeloginid>0"
set "replace=<employeeloginid>"

set "textFile=TimeTEQ20170103T085714L.XML"

for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
set "line=%%i"
setlocal enabledelayedexpansion
set "line=!line:%search%=%replace%!"
>>"%textFile%" echo(!line!
endlocal
)

这将找到所有出现的 <employeeloginid>0并将其替换为 <employeeloginid>设置文件中 - 在本例中为 TimeTEQ20170103T085714L.XML .

我现在需要调整它以在所有 TimeTEQ 开头的文件上运行和结尾.xml

我找到了 this answer它显示了如何处理目录中的所有文件,但我不知道如何调整它以满足我的需要。

谁能帮帮我?

最佳答案

简单地环绕一个标准 for loop ,像这样:

@echo off 
setlocal EnableExtensions DisableDelayedExpansion

set "search=<employeeloginid>0"
set "replace=<employeeloginid>"

set "textFile=TimeTEQ*.xml"
set "rootDir=."

for %%j in ("%rootDir%\%textFile%") do (
for /f "delims=" %%i in ('type "%%~j" ^& break ^> "%%~j"') do (
set "line=%%i"
setlocal EnableDelayedExpansion
set "line=!line:%search%=%replace%!"
>>"%%~j" echo(!line!
endlocal
)
)

endlocal

如果您还想处理子文件夹中的匹配文件,请使用 for /R loop :

@echo off 
setlocal EnableExtensions DisableDelayedExpansion

set "search=<employeeloginid>0"
set "replace=<employeeloginid>"

set "textFile=TimeTEQ*.xml"
set "rootDir=."

for /R "%rootDir%" %%j in ("%textFile%") do (
for /f "delims=" %%i in ('type "%%~j" ^& break ^> "%%~j"') do (
set "line=%%i"
setlocal EnableDelayedExpansion
set "line=!line:%search%=%replace%!"
>>"%%~j" echo(!line!
endlocal
)
)

endlocal

关于windows - 用于替换多个文件中特定字符串的批处理脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41542554/

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