标题: [文本处理] set之类的命令查找替换字符串时如何支持正则呢? [打印本页]
作者: shenghuo 时间: 2013-7-28 09:15 标题: set之类的命令查找替换字符串时如何支持正则呢?
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%i in (2.txt) do (
set a=%%i
set a=!a:/=\n!
echo !a!>>en.txt
)
pause
怎么写 才可能让“\n”代表 换行呢?
本职是SEO,最近一直在学习DOS处理数据,多谢大牛们帮忙。。。
作者: weichenxiehou 时间: 2013-7-28 10:26
回复 1# shenghuo - @echo off&setlocal enabledelayedexpansion
- set NLM=^
-
-
- set NL=^^^%NLM%%NLM%^%NLM%%NLM%
- for /f "delims=" %%i in (2.txt) do (
- set a=%%i
- set a=!a:/=%NL%!
- echo !a!>>en.txt
- )
- pause
复制代码
作者: shenghuo 时间: 2013-7-28 12:24
回复 2# weichenxiehou
没有替换词 换行啊
作者: Batcher 时间: 2013-7-28 13:29
回复 3# shenghuo
请把你的测试数据和测试结果贴出来看看
作者: shenghuo 时间: 2013-7-30 16:46
回复 4# Batcher
执行后,使用editplus打开
记事本打开
这是为什么呢
作者: CrLf 时间: 2013-7-30 17:38
本帖最后由 CrLf 于 2013-7-30 18:39 编辑
回复 5# shenghuo
因为你顶楼说的 \n 是换行符,回车换行 \r\n 才是记事本中看到的换行效果,小改下 2 楼超人的代码:- @echo off&setlocal enabledelayedexpansion
- set NLM=^
-
-
- for /f %%D in ('copy /z %0 nul') do (
- for %%A in ("%%D!NLM!") do (
- for /f "delims=" %%i in (a.txt) do (
- set a=%%i
- set "a=!a:/=%%~A!"
- echo !a!>>en.txt
- )
- )
- )
- pause
复制代码
作者: 522235677 时间: 2013-7-30 17:45
没明白楼主的意思,把/替换为\n ?
还是替换为<br>?
作者: shenghuo 时间: 2013-7-30 18:10
回复 6# CrLf
多谢, 不过上面这个代码 测试和2楼大神代码的结果一样啊
顺便咨询一下,DOS下这么写不对?
作者: CrLf 时间: 2013-7-30 18:27
回复 8# shenghuo
-F"/"
作者: shenghuo 时间: 2013-7-30 18:38
回复 9# CrLf
膜拜
作者: CrLf 时间: 2013-7-30 18:41
看来 CR 和 %NL% 的办法不能合用
6 楼代码已修改
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |