批处理BAT:文件中替换字符并保留空行、空格、换行亲测可用

文章详细描述了一个bat脚本,用于在文本文件中搜索并替换指定字符串,同时处理文件路径,包括查找子目录中的所有.txt文件并进行相同的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@echo off

::old string and replace string
set old_str=ip
set new_str=#ip

:FILE
set "souerce_path=D:\xxx\bat\my_test.txt"
for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%souerce_path%"') do (
    set "lineContent=%%j"
    ::echo ==%%j==
    setlocal EnableDelayedExpansion
    if not "!lineContent!"=="" set "lineContent=!lineContent:%old_str%=%new_str%!"
    >>"temp.txt" echo.!lineContent!
    endlocal
)
move /y temp.txt "%souerce_path%"
goto END

:PATH
::files path
set "souerce_path=D:/xxx/bat"
cd /d "%souerce_path%"

:: dir /s /b /a-d *.txt  ::get all current and sub path file name with post .txt
for /f "delims="  %%a in ('dir /s /b /a-d *.txt') do (
    for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%%a"') do (
        set "lineContent=%%j"
        ::echo ==%%j==
        ::here use "setlocal EnableDelayedExpansion" to keep content "!"
        setlocal EnableDelayedExpansion
        if not "!lineContent!"=="" set "lineContent=!lineContent:%old_str%=%new_str%!"
        >>"%%~dpnxas" echo.!lineContent!
        endlocal
    )
    del /s /q /f "%%a" >nul
    ren *.txts *.txt
)
:END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值