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

DOS/BAT
检测ip格式是否正确的批处理
字符串拼接的批处理
字符串截取功能批处理
生成0-99之间的随机数列
用指定字符串替换指定内容
用某行内容替换特定字符
统计重复次数并排序的批处理
计算字符串的长度批处理
读取带敏感字符的行的批处理
批处理方式实现的目录比较工具
统计每个数的重复次数,并按照重复次数由高到低排序的批处理
计算字符串的长度的多种解决方案集锦
set 命令特殊用法
powercfg 命令 关闭显示器写法
文本文件乱序排列bat实现代码
批处理将非administrator用户全部禁掉的代码
批处理实现ping数据中文版
批处理显示当前ip(局域网)
本机开放的端口及使用该端口的进程的批处理
Windows 文件类型与打开方式定义方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 429 ::
收藏到网摘: 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%"