欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

批处理 保留空行替换字符串

程序员文章站 2022-08-26 08:21:04
复制代码 代码如下:@echo off :: 保留空行替换字符串 :: 当行首有冒号时会抛掉最开始的几个连续冒号(这个问题可以解决) :: 会忽略以分号开头的行 :: 不能...
复制代码 代码如下:

@echo off
:: 保留空行替换字符串
:: 当行首有冒号时会抛掉最开始的几个连续冒号(这个问题可以解决)
:: 会忽略以分号开头的行
:: 不能正确处理感叹号(因为启用了变量延迟)
::
::

set file=
set /p file= 请把要处理的文件拉到本窗口:
set "file=%file:"=%"
for %%i in ("%file%") do set "file=%%~fi"
echo.
set replaced=
set /p replaced= 请输入即将被替换的内容:
echo.
set all=
set /p all= 请输入替换字符串:
cd.>"%file%_tmp.txt"
setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%file%"') do (
set str=%%j
if not "!str!"=="" set "str=!str:%replaced%=%all%!"
>>"%file%_tmp.txt" echo.!str!
)
copy "%file%" "%file%_bak.txt" >nul 2>nul
move "%file%_tmp.txt" "%file%"
start "" "%file%"