[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 apang 于 2015-3-12 19:51 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. set Lf=^
  3. for /f "delims=" %%a in (a.txt) do (
  4.         set "s=%%a"
  5.         set "Len=0"
  6.         for %%b in (4096 2048 1024 512 256 128 64 32 16) do (
  7.                 if "!s:~%%b!" NEQ "" set /a Len+=%%b & set "s=!s:~%%b!"
  8.         )
  9.         set "s=!s!fedcba9876543210"
  10.         set /a Len+=0x!s:~16,1!
  11.         if !Len! GEQ !Max! (
  12.                 for %%b in (!Len!) do set "_%%b=!_%%b!%%a!Lf!"
  13.                 set "Max=!Len!"
  14.         )
  15. )
  16. echo,!_%Max%!
  17. pause
复制代码
发现 set /a Len+=0x!s:~15,1! 是错误的,改一下,顺便改一下if判断逻辑
1

评分人数

    • 慕夜蓝化: 感觉每次都让人大吃一惊的样子,原来还能这 ...技术 + 1

TOP

本帖最后由 apang 于 2015-3-9 18:39 编辑

好像也可以这样:
  1. @set @n=0;// & cscript -nologo -e:jscript "%~0" < a.txt & pause & exit
  2. s = WScript.StdIn.ReadAll() + "\r\n";
  3. ar = s.split("\r\n").sort(function(x,y){return y.length-x.length});
  4. for (i=0; i<ar.length-1; i++) {
  5.         WScript.Echo(ar[i]);
  6.         if (ar[i].length != ar[i+1].length) break;
  7. }
复制代码
1

评分人数

TOP

本帖最后由 apang 于 2015-3-10 18:52 编辑

findstr /o 得到的是字节数,不是字符数,难道是我记错了?好像文本最后还需要两个回车换行,否则最后一行获取不到
1

评分人数

    • cobat: 乐于助人技术 + 1

TOP

回复 27# caruko


    嗯嗯,%%~za

话说本帖浏览超过1000次,火火的

TOP

返回列表