Board logo

标题: [文本处理] [已解决]求助批处理逆向读取txt内容,不借助第三方程序 [打印本页]

作者: /zhqsystem/zhq    时间: 2015-11-17 23:41     标题: [已解决]求助批处理逆向读取txt内容,不借助第三方程序

txt内容逆向读取[行的逆向非文字逆向],不借助第三方程序[只能是系统自带的命令程序]
研究了两天了[搜了论坛]无果,请各位坛友指导

注:只要标准批处理,其余格式看不懂,或者给出哪个可执行程序也可以[加上参数便可]

作者: CrLf    时间: 2015-11-18 00:41

纯批可以做到,这里来一个 Bat+JS 混编
  1. 1>1/* :
  2. @echo off
  3. cscript -nologo -e:jscript "%~0" <a,txt
  4. pause & exit /b
  5. */
  6. WSH.StdIn.ReadAll().replace(
  7.    /.*/g,
  8.    function(str){
  9.       WSH.Echo(str.split('').reverse().join(''))
  10.    }
  11. )
复制代码

作者: CrLf    时间: 2015-11-18 00:50

纯批的话,按一般的逻辑是计算字符串长度后再逆序
  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do (
  3.    set "$=%%a#"
  4.    set "str=%%a"
  5.    set "output="
  6.    setlocal enabledelayedexpansion
  7.    set len=&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!
  8.    for /l %%b in (1 1 !len!) do set output=!output!!str:~-%%b,1!
  9.    echo !output!
  10.    endlocal
  11. )
  12. pause
复制代码
当然你也可以霸王硬上弓,慢归慢,但好记:
  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do (
  3.    set "str=%%a"
  4.    set "output="
  5.    setlocal enabledelayedexpansion
  6.    for /l %%b in (0 1 8190) do set output=!str:~%%b,1!!output!
  7.    echo !output!
  8.    endlocal
  9. )
  10. pause
复制代码

作者: /zhqsystem/zhq    时间: 2015-11-18 00:54

回复 2# CrLf
汗啊,你理解错了,不是文字逆向,是行的逆向,最后一行开始一直到第一行这么读取,还是来个标准的执行吧,这个的确看不懂,不过这个也挺好玩的,居然文字都反了,(因为要写到合集中的所以必须是标准的批处理才可以正常运行)
作者: CrLf    时间: 2015-11-18 00:56

回复 4# /zhqsystem/zhq


    那更简单了,秒杀
  1. sort /+65535 a.txt
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2