[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何将txt文本每一行的内容倒序/反转输出?

本帖最后由 pcl_test 于 2016-7-22 19:55 编辑

例如:原文本a内容:
批处理,是“我的最爱”

7878 2到底 23 。322版本


处理后输出文本b内容:
”爱最的我“是,理处批

本版223。 32 底到2 8787

行序不变,如果行与行之间有空行的话也不得删除,即保持原行序结构,只改变每行内容的前后顺序。
如何写代码?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

顶起来,高手

TOP

本帖最后由 apang 于 2012-11-15 22:30 编辑
  1. @echo off
  2. (for /f "tokens=1,2 delims=[]" %%a in ('find /v /n ""^<a.txt') do (
  3.   set "str1=%%b$"
  4.   set "str2=%%b$"
  5.   setlocal enabledelayedexpansion
  6.   for %%b in (2048 1024 512 256 128 64 32 16) do (
  7.     if "!str1:~%%b!" neq "" (
  8.       set /a n+=%%b&set "str1=!str1:~%%b!"
  9.     )
  10.   )
  11.   set "str1=!str1!fedcba9876543210"
  12.   set /a n+=0x!str1:~16,1!
  13.   for /l %%b in (0 1 !n!) do set "str=!str2:~%%b,1!!str!"
  14.   echo,!str:~1!
  15.   endlocal
  16. ))>b.txt
复制代码
1

评分人数

    • wh1234567: 效果很好,再次感谢您的帮助,顺便说下,关 ...技术 + 1

TOP

本帖最后由 CrLf 于 2012-11-15 23:03 编辑

方法来自网上,我也没看明白,求解答:
  1. sed "/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//" 1.txt>2.txt
复制代码
1

评分人数

TOP

回复 4# CrLf

很感谢你的相助,但是效果见截图,另外,处理输出后会出现错误现象

TOP

回复 5# wh1234567


可能是你的sed版本问题,试试这个:
http://www.bathome.net/thread-16975-1-1.html
1

评分人数

    • wh1234567: 嗯,是的,新版本的就不出现乱码技术 + 1

TOP

回复 4# CrLf


看执行过程:
[tmp]$ ./sedsed -d --hide=hold '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' urfile
PATT:a$
COMM:/\n/ !G
PATT:a\n$
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:a\n\na$
COMM:// D
PATT:\na$
COMM:/\n/ !G
PATT:\na$
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:\na$
COMM:// D
PATT:\na$
COMM:s/.//
PATT:a$
a
PATT:b$
COMM:/\n/ !G
PATT:b\n$
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:b\n\nb$
COMM:// D
PATT:\nb$
COMM:/\n/ !G
PATT:\nb$
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:\nb$
COMM:// D
PATT:\nb$
COMM:s/.//
PATT:b$
b
PATT:c$
COMM:/\n/ !G
PATT:c\n$
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:c\n\nc$
COMM:// D
PATT:\nc$
COMM:/\n/ !G
PATT:\nc$
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:\nc$
COMM:// D
PATT:\nc$
COMM:s/.//
PATT:c$
c
PATT:d$
COMM:/\n/ !G
PATT:d\n$
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:d\n\nd$
COMM:// D
PATT:\nd$
COMM:/\n/ !G
PATT:\nd$
COMM:s/\(.\)\(.*\n\)/&\2\1/
PATT:\nd$
COMM:// D
PATT:\nd$
COMM:s/.//
PATT:d$
d
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# Batcher


    昂!?这么牛逼的第三方是哪位?

TOP

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 pcl_test 于 2016-7-22 20:02 编辑
  1. //&cls&type "文本.txt"|cscript -nologo -e:jscript "%~f0"&pause&exit
  2. var s='';while(!WSH.StdIn.AtEndOfStream){s+=WSH.StdIn.ReadLine().split('').reverse().join('')+'\r\n';}
  3. WSH.Echo(s);
复制代码

TOP

本帖最后由 pcl_test 于 2016-12-17 19:00 编辑
  1. powershell -c "gc '文本.txt'|%%{$_[($_.length-1)..0] -join ''}"
复制代码
  1. powershell -c "gc '文本.txt'|%%{$a=$_.ToCharArray();[array]::Reverse($a);$a -join ''}"
复制代码

TOP

返回列表