标题: [文本处理] 批处理文本内容倒序 [打印本页]
作者: fanfande 时间: 2012-4-25 21:47 标题: 批处理文本内容倒序
文件夹内的txt文档
采用批处理的方法使文件夹内的每个txt文档内容都倒序排版
比如之前一个txt文档内容是
123456789
批处理后变成987654321忽略空行
把生成新的txt至newtxt文件夹
作者: lxzzr 时间: 2012-4-25 22:08
字符串倒序还是文本倒序?
作者: apang 时间: 2012-4-25 23:20
本帖最后由 apang 于 2012-4-25 23:41 编辑
如果只是字符串倒序- @echo off
- md "newtxt" 2>nul
- for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
- (for /f "usebackq delims=" %%b in ("%%a") do (
- set "str=%%b"
- setlocal enabledelayedexpansion
- call :lp
- endlocal
- ))>"newtxt\%%a"
- )
- goto :eof
-
- :lp
- if not "!str!"=="" set str1=!str1!!str:~-1!&set "str=!str:~,-1!"&goto lp
- echo;!str1!&set str1=
复制代码
作者: apang 时间: 2012-4-25 23:21
本帖最后由 apang 于 2012-4-25 23:42 编辑
字符串、文本倒序- @echo off
- md "newtxt" 2>nul
- for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
- (for /f "tokens=1* delims=:" %%b in ('findstr /n .* "%%a"^|sort /r') do (
- set "str=%%c"
- setlocal enabledelayedexpansion
- call :lp
- endlocal
- ))>"newtxt\%%a"
- )
- goto :eof
-
- :lp
- if not "!str!"=="" set str1=!str1!!str:~-1!&set "str=!str:~,-1!"&goto lp
- echo;!str1!&set str1=
复制代码
作者: fanfande 时间: 2012-4-26 08:47
回复 2# lxzzr
你好版主,就是txt文档里面的所有文字倒序
作者: fanfande 时间: 2012-4-26 08:47
bat太好玩了,只要有规律的就可以实现是吗
作者: fanfande 时间: 2012-4-26 08:52
回复 4# apang
你好,回复晚了!见谅!
字符串倒序和文本倒序有什么区别啊?我运行下来好像一样的结果!
顺便问下,可以排除文章内的指定字不被倒序批处理吗吗?
比如文章内出现 批处理之家 和 bathome
让批处理之家 和 bathome 跳过不被倒序!
谢谢您
作者: apang 时间: 2012-4-26 11:15
回复 7# fanfande
文本倒序就是,比如你的文本有20行,将最后一行(第20行)放到第一行,第19行放到第二行,以此类推。
#4楼代码有BUG,文本超过10行就不行了。。。
作者: CrLf 时间: 2012-4-26 12:19
- @echo off
- for /f "delims=" %%a in ('sort /+4096 a.txt') do (
- set line=%%a
- set $=%%a#
- set len=-1
- setlocal enabledelayedexpansion
- for %%a in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1)do (
- if !$:~%%a^,1!. NEQ . set/a len+=%%a&set $=!$:~%%a!
- )
- rem 二分回溯法判断字符串长度,为避免 call 降低效率,将函数内置
- set "str="
- for /l %%a in (!len! -1 0) do set str=!str!!line:~%%a,1!
- echo !str!
- rem 字符串倒序
- endlocal
- )
- pause
复制代码
作者: fanfande 时间: 2012-4-26 12:25
回复 8# apang
原来是这样啊→文本倒序就是行下面的行滚到上面去是吧
上尉你好,可以给出完整的代码吗
谢谢
作者: gawk 时间: 2012-4-26 15:35
复制代码
作者: fanfande 时间: 2012-5-8 16:00
回复 11# gawk
你好,对同一文件夹内的文本进行批处理
作者: gawk 时间: 2012-5-8 18:39
回复 12# fanfande - @echo off
- for %%a in (*.txt) do (
- tac %%a >%%~na.log
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |