前几天有人问我一个问题,要求只在汉字和汉字之间插入符号,思索后写出代码,发现效率很低,生成临时文件很多
还有个问题未能完全解决,就是关于空行的原样保留问题
代码如下,希望大家有更好的思路发表一下,有助于学习和提升-
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in (yangben.txt) do (
- set "e=%%a"
- set /a num+=1
- call :aa
- )
- for /l %%o in (1,1,!num!) do for /f "delims=" %%p in (%%o.txt) do (
- set "v=%%p"
- if "!v:~0,1!" neq "#" (
- set "v=!v:~0,1!"
- >>%%o%%o.txt set/p <nul "=!v!") else (
- set "v=!v:~0,2!"
- >>%%o%%o.txt set/p <nul "=!v!")
- )
- for /l %%o in (1,1,!num!) do for /f "delims=" %%p in (%%o%%o.txt) do (>>return.txt echo %%p)
- for /r %%a in (*.txt) do if "%%~nxa" neq "yangben.txt" if "%%~nxa" neq "return.txt" del "%%a"
- goto :eof
- :aa
- for /l %%b in (0,1,100) do (
- set "d=!e:~%%b,1!"
- if "!d!" neq "" (
- if "%%b"=="0" (
- if "!d!" gtr "Z" (
- >>!num!.txt echo.!d!
- set /a m=%%b+1
- call set "f=%%e:~!m!,1%%"
- if "!f!" gtr "Z" (>>!num!.txt echo.#!f!) else (>>!num!.txt echo.!f!)
- ) else (
- >>!num!.txt echo.!d!
- set /a m=%%b+1
- call set "f=%%e:~!m!,1%%"
- >>!num!.txt echo.!f!
- )
- ) else (
- if "!d!" gtr "Z" (
- set /a m=%%b+1
- call set "f=%%e:~!m!,1%%"
- if "!f!" gtr "Z" (>>!num!.txt echo.#!f!) else (>>!num!.txt echo.!f!)
- ) else (
- set /a m=%%b+1
- call set "f=%%e:~!m!,1%%"
- >>!num!.txt echo.!f! )
- )
- ) else (goto cc)
- )
- :cc
- goto :eof
复制代码 不好意思忘了发样本了,其实自己随便写个也可以,因为本身提问的人就是随便举的例子,现把样本发出
yangben.txt-
- 中华人民 共和bcdf国
- 中华 人民,共和。国
- 中华aa人民 共和国, 中华abc人民 共和国.
-
- 开始菜单为何无法重起和关机_电脑网络_奇虎网
- 首先谈谈Windows系统自动关机的条件。在Win98及更高版本的系统中都支持自动关机,即不通过电源的物理开关实现关机。自动关机是通过操作系统支持的ACPI(Advanced Configurat
- www.qihoo.com/q/computer/3593321.html 2010-4-25 - 百度快照
-
- Vista开始菜单中的关机和重启没了怎么办_滚动新闻_科技时代_新浪网
- 开始菜单怎么没有关机和重启了!咋办? 解决方案如下: 1)运行regedit。 2)依次展开注册表:HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ ...
- tech.sina.com.cn/other/2007-09-17/0810174 ... 2010-3-30 - 百度快照
复制代码
-
-
- 严重警告:
-
- 因为生成临时文件,所以本代码用了del,请测试人员注意建立单独文件夹测试!!
复制代码 【】
[ 本帖最后由 jackerloo2009 于 2010-5-24 18:28 编辑 ] |