[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
不知道我有没有理解错
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do (
  3. set /p=第%%a行:  <nul
  4. set tmp=%%b
  5. for %%c in ("!tmp: =" "!") do (
  6. if "!.%%a%%c!"=="" (set ".%%a%%c=.") else set /p=%%~c   <nul
  7. )
  8. echo;
  9. )
  10. pause
复制代码

TOP

呃,终于明白了,貌似不太难...这么长的行,我感觉用眼睛更判断不了
  1. @echo off&setlocal enabledelayedexpansion
  2. ::将下面的[tab]改为实际的跳格键
  3. set "tab=        "
  4. for /f "delims=" %%a in (a.txt) do (
  5.         set "tmp=%%a"
  6.         for %%b in ("!tmp:        =" "!") do (
  7.                 set /a n=n%%50+1
  8.                 for %%z in (!n!) do set .!n!=!.%%z!^|%%~b
  9.         )
  10. )
  11. for /l %%a in (1 1 50) do (
  12.         set tmp=
  13.         for %%b in ("\!.%%a!") do set tmp=!%%~b!
  14.         set \!.%%a!=*!tmp! %%a列
  15. )
  16. for /f "tokens=1* delims=\=*" %%a in ('set\^|findstr "**"') do (
  17. echo 第%%b相同,内容为:
  18. echo %%a
  19. )
  20. pause
复制代码
1

评分人数

    • batman: 可再尝试升序处理PB + 12

TOP

排序很容易,现在最心痛的是效率...
  1. @echo off&setlocal enabledelayedexpansion
  2. set tab=[tab]
  3. ::请手动替换[tab]为tab键
  4. set "dq=%tab%%tab%%tab%%tab%%tab%%tab%%tab%%tab%%tab%%tab% "
  5. for /f "delims=" %%a in (a.txt) do (
  6. set "tmp=%%a"
  7. for %%b in ("!tmp:%tab%=" "!") do (
  8. set /a n=n%%50+1
  9. for %%z in (!n!) do set .!n!=!.%%z!^|%%~b
  10. )
  11. )
  12. for /l %%a in (1 1 50) do (
  13. set tmp=
  14. set m= %%a
  15. for %%b in ("\!.%%a!") do set tmp=!%%~b!
  16. set \!.%%a!=*!tmp! !m:~-2!行
  17. )
  18. (@echo off
  19. for /f "tokens=1* delims=\=*" %%a in ('set\^^^|findstr "**"') do (
  20. for /f "tokens=* delims=^|" %%c in ("%%a") do echo 第%%b相同,内容为:%dq%%%c%dq%
  21. ))|sort
  22. pause
复制代码
1

评分人数

    • batman: 好,居然用上了退格!PB + 8

TOP

本来想写成一行判断一次,这样只需要一个for,而无须把整个代码“横过来”,不过懒啊...
若非一行有50列,就可以直接用tokens了

TOP

呃,我用退格不是为了多行回退...仔细看下会发现我用的是[十个tab][一个空格][80个退格键],目的就是利用退格键不能跨行的特点来对齐超过一行的内容,这样可以把两行当成一行来排序,但却显示为两行。
那个空格是特意用来隔开tab和空格的,免得效果变成退行。

TOP

发错地方...

TOP

返回列表