Board logo

标题: [文本处理] bat怎么将文本文件里的字符串按长短来排列 [打印本页]

作者: 2362262019    时间: 2018-7-3 18:27     标题: bat怎么将文本文件里的字符串按长短来排列

我有一个文本文件a.txt
斗罗大陆
校花的贴身高手
药神
三字经
这几个按字符串的长短来排列,并且放入到b.txt
b.txt
1.药神
2.三字经
3.斗罗大陆
4.校花的贴身高手
像这样的排列!
本人在写一个图书管理系统,想提升一下自己的水平。
求助大佬!
作者: codegay    时间: 2018-7-3 18:35

日常建议。换其它语言。
作者: CrLf    时间: 2018-7-3 19:55

PowerShell走一个
  1. $list = type a.txt | sort {[text.encoding]::GetEncoding('gb2312').GetBytes($_.name).length}
  2. $result = 1..($list.length) | %{'{0}.{1}' -F $_,$list[$_-1].name}
  3. $result >b.txt
复制代码

作者: CrLf    时间: 2018-7-3 20:08

批处理+hta走一个
  1. mshta http://bathome.net/s/hta/index.html ^
  2.   type(a.txt)^
  3.     .replace(/[\u0100-\uffff]/g,'$0:')^
  4.     .split(/\r?\n/)^
  5.     .sort(function(a,b){return a.length-b.length})^
  6.     .join('\r\n')^
  7.     .replace(/:/g,'')^
  8.   >b.txt
复制代码

作者: CrLf    时间: 2018-7-3 20:34

来来来,纯批奇技淫巧走一个
  1. @echo off
  2. (for /f "tokens=*" %%a in (a.txt) do (
  3.    echo %%a: :
  4. ))>$
  5. (for /f "tokens=1,2 delims=:" %%a in ('more /t100 $') do (
  6.    echo %%b%%a
  7. ))>$2
  8. (for /f "tokens=*" %%a in ('sort $2') do (
  9.    echo %%a
  10. ))>b.txt
  11. pause
复制代码
当然,建议听2楼劝
作者: Batcher    时间: 2018-7-4 09:10

建议换成高级语言+数据库




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