当前位置: 首页 > 图文教程 > 脚本技术 > DOS/BAT > 批处理 保留空行替换字符串

DOS/BAT
dos 文件删除 del命令
dos 重命名文件(夹)ren
dos 创建文件夹 md
dos 删除文件夹 rd
ren 命令在使用通配符时需要注意的地方
批处理FOR 中的Delims和Tokens总结
批处理 FOR参数/F之tokens详解
for 提取文本整行内容的方法
Dos Shell操作代码
将文件夹变为磁盘的批处理
批处理 延时不完全总结
批处理读取注册表中run下面的值的代码
查看物理内存的批处理
批处理 用户是否存在判断
百度关键字搜索(批处理打开网页)
本机每个盘都添加上卷标的命令
批处理维护工具菜单实现
计算机名DNS网关IP(大家可以用来学习)
防arp欺骗的批处理(绑定arp)
批处理倒计时(全屏)

DOS/BAT 中的 批处理 保留空行替换字符串


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 431 ::
收藏到网摘: n/a

复制代码 代码如下:

@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%"