Board logo

标题: [讨论]批处理行号是如何加上去的? [打印本页]

作者: dosz     时间: 2009-4-11 10:20    标题: [讨论]批处理行号是如何加上去的?

批处理行号是如何加上去的?
http://www.cn-dos.net/forum/viewthread.php?tid=21664

  Quote:

  1. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

  2. :: Batch2ubb.cmd -V0.30 -- 批处理转 UBB 代码

  3. :: 无奈何@cn-dos.net - 更新于:2005-7-30 - CMD & GAWK

  4. :: 用法:Batch2ubb [/i 输入文件] [/o 输出文件] [/n 输出无行号] [/h 显示帮助]

  5. :: 支持文件: - gawk.exe  winclip.exe  Batch2ubb.awk  batch.esy

  6. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::



  7. @echo off

  8. setlocal

  9. set path=%path%;%cd%;%~dp0

  10. set error=

  11. rem 文件完整性检查。

  12. for %%i in (gawk.exe winclip.exe batch.esy batch2ubb.awk) do (

  13.         @if "%%~$PATH:i" == "" (

  14.                 echo 错误:程序所依赖文件 "%%i" 缺失。

  15.                 set error=错误:程序文件不完整。

  16.         ) else ( set %%~ni="%%~$PATH:i" )

  17. )

  18. if defined error goto error



  19. rem 测试剪贴板数据类型。

  20. winclip -i |findstr /r ".*_.*TEXT" >nul

  21. if ERRORLEVEL 1 set error=错误:剪贴板为空或内容为非文字数据!



  22. rem 空参数调用获得剪贴板数据,将转换结果复制到剪贴板。

  23. if "%~1" == "" (

  24.         if defined error goto error

  25.         winclip -p |gawk -v line=1 -f %Batch2ubb% |winclip -c

  26.         goto end

  27. )

  28. rem 只有一个参数时尝试作为输入文件处理,当其不存在时作参数处理。

  29. if "%~2" == "" (

  30.         if exist "%~1" (

  31.                 gawk -v line=1 -f %Batch2ubb% "%~1" |winclip -c

  32.                 goto end

  33.         )

  34. )

  35. set line=1

  36. set input=

  37. set out=



  38. :ParseLoop

  39. if "%~1" == "" goto Start

  40. if "%~1" == "/?" goto SwitchH

  41. rem 参数处理并转到相应标签。

  42. for %%s in (i I n N o O h H) do if "%~1"=="/%%s" goto Switch%%s

  43. set error=错误: 参数格式不正确 - "%1"!

  44. goto error



  45. :SwitchI

  46. set "input=%~2"

  47. if not exist "%input%" set error=警告:文件 "%input%" 不存在。 & goto error

  48. goto Next2Arg



  49. :SwitchO

  50. set "out=%~2"

  51. if not defined out set error=警告:请指定输出文件。 & goto error

  52. goto Next2Arg



  53. :SwitchN

  54. set line=0

  55. goto NextArg



  56. :Next2Arg

  57. shift

  58. :NextArg

  59. shift

  60. goto ParseLoop



  61. rem 不同参数分类判断处理。

  62. :Start

  63. if defined input (

  64.         if defined out (

  65.                 gawk -v line=%line% -f %Batch2ubb% "%input%" >"%out%"

  66.         ) else (

  67.                         gawk -v line=%line% -f %Batch2ubb% "%input%" |winclip -c

  68.                 )

  69. ) else (

  70.         if defined out (

  71.                         if defined error goto error

  72.                         winclip -p |gawk -v line=%line% -f %Batch2ubb% >"%out%"

  73.         ) else (

  74.                         if defined error goto error

  75.                         winclip -p |gawk -v line=0 -f %Batch2ubb% |winclip -c

  76.                 )

  77. )

  78. goto end



  79. :error

  80. echo.%error%

  81. echo.

  82. :SwitchH

  83. echo.批处理转 UBB 代码。

  84. echo.Batch2ubb [/i 输入文件] [/o 输出文件] [/n 输出无行号] [/h 显示帮助]

  85. echo.

  86. echo. /i        指定转换的文件,可包含路径,缺省从剪贴板获得。

  87. echo. /o        指定输出的文件,可包含路径,缺省输出到剪贴板。

  88. echo. /n        生成无行号的 UBB 代码,缺省带行号。

  89. echo. /h        显示本简短帮助,等价命令 /?

  90. echo.  本程序执行依赖以下文件 gawk.exe winclip.exe Batch2ubb.awk batch.esy。

  91. echo.

  92. :end

        dosz发表于:  2009-04-11  21:14

[ Last edited by dosz on 2009-4-11 at 10:26 ]
作者: dosz     时间: 2009-4-11 10:24
请输入要查找的文件名

  Quote:

  1. @echo off
  2. cls
  3. :loop
  4. set filename=
  5. set/p filename=请输入要查找的文件名(支持通配符,如"*.mp3 mp3.*"):
  6. if not defined filename (cls & if errorlevel 1 cls&msg * dosz 提示:输入了错误的命令,这是为什么呢~,是否想忽悠?&goto loop)
  7. echo.
  8. set/p sheet=请输入要写入例表的文件名:┗┛可选项(不要扩占名)
  9. set num=
  10. ECHO ☆☆☆ %DATE% %time% ☆☆☆>%temp%\%sheet%.txt
  11. set drv= C D E F G H I J K L M N O P Q R S T U V W X Y Z
  12. for %%a in (%drv%) do  (
  13.          if exist %%a:\nul (
  14.                cls&echo 正在搜索 %%a: 盘下的 %filename% ...
  15.                    dir>nul 2>nul /s/b/a/o "%%a:\%filename%" >>%temp%\%sheet%.txt&&set num=1
  16.               )
  17.       )
  18. if "%num%" == "1" (
  19. @mode con cols=120
  20. cls&echo.&echo.
  21. color 1f
  22. echo =========== 为你找到下列文件: "%filename%" 并保存到“%temp%\%sheet%.txt”文件中  ================
  23. title 快速打开文件
  24. echo.
  25. for /f "delims=" %%i in (%temp%\%sheet%.txt) do echo %%i
  26. ) else (cls&echo.&echo.&echo ***** 没有找到文件: "%filename%" *****&pause>nul&GOTO :EOF)
  27. start %temp%\%sheet%.txt
  28. pause
        dosz发表于:  2009-04-11  21:18

[ Last edited by dosz on 2009-4-11 at 10:27 ]
作者: dosz     时间: 2009-4-11 10:35
我要说的是在深度论坛无法显示行号问题应该如何解决?
http://os.deepin.org/read.php?tid=1052540&page=1&toread=1
作者: yishanju     时间: 2009-4-11 10:40
深度用的是PHPWIND论坛吧,可能 不支持UBB
作者: HAT     时间: 2009-4-11 12:07
行号需要使用的标签是list
你可以到深度问问他们的管理员为什么不支持list
作者: netbenton     时间: 2009-4-11 13:50


  Quote:
[list=1]
[*]我学也会了,谢谢各位
[*]原来是这样的
[/list]


  1. 我学也会了,谢谢各位
  2. 原来是这样的

gg

[ Last edited by netbenton on 2009-4-11 at 18:41 ]
作者: yishanju     时间: 2009-4-11 14:36
[fly]BS楼上灌纯净[/fly]