[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件管理] 批处理资源管理器

根据实际编程需要以及batcher的有奖活动特地写个批处理资源管理器,不必计较是不是真的资源管理器,只是模仿。
下面是昨晚尝试的结果:
历史记录功能可用,定位可能需要完善,其他功能有待继续开发。
  1. @echo off&setlocal enabledelayedexpansion
  2. ::Batch Resource Management Program V1.0.1
  3. set "input=%1"
  4. set "rmppath=%~dp0"
  5. set H1=%rmppath%
  6. :rmpMenuPreview 控制台
  7. cls
  8. title %cd%
  9. set rmpvar=
  10. echo;历史记录:!H1!  !H2!  !H3!
  11. echo;=============================================================================
  12. ::echo;打开【O】新建【W】删除【D】重命名【M】属性【R】创建快捷方式【S】关闭【C】
  13. ::echo;编辑【】剪切【】复制【】粘贴【】移动【】
  14. ::echo;查看【】图标【】排列【】刷新【】选择【】搜索【】查看【】收藏【】设置【】
  15. echo;定位【PS】历史记录【H】帮助【Help】
  16. echo;=============================================================================
  17. set num=0
  18. for /f "tokens=*" %%a in ('dir /b') do set /a num+=1&echo;    !num!  %%a&set "rmpvar=%%a"
  19. if "!rmpvar!"=="" echo;    ^<空文件夹^>
  20. echo;
  21. set input=
  22. set inputs=
  23. set /p "input=    请输入:"
  24. if "%input%"=="" goto rmpMenuPreview
  25. if exist "%input%" cd /d "%input%"&call :rmpHistory "%input%"
  26. if /i "%input%"=="Help" call :rmpHelp&goto rmpMenuPreview
  27. if /i "%input:~0,1%"=="H" if "%input:~2,2%"=="" call :rmpHistoryBack&goto rmpMenuPreview
  28. for /f "tokens=1,2" %%a in ("%input%") do if "%%b"=="" (set input=%%a) else (set input=%%a&set inputs=%%b)
  29. echo;
  30. call :rmpLinePosition
  31. echo;
  32. echo;=============================================================================
  33. echo;    ^<The End^>
  34. pause>nul
  35. goto rmpMenuPreview
  36. :rmpLinePosition 处理类型
  37. set num=0
  38. for /f "tokens=*" %%a in ('dir /b') do set /a num+=1&if !num!==!input! (
  39.     echo;    !num!  "%%~a"
  40.     echo;=============================================================================
  41.     if exist "%%~a" (
  42.         if /i %%~xa==.txt  more "%%~a"
  43.         if /i %%~xa==.bat  more "%%~a"
  44.         if /i %%~xa==.cmd  more "%%~a"
  45.         if exist "%%~a" (
  46.             dir /b /a:d "%%~a">nul 2>nul&&((cd /d "%%~a"&call :rmpHistory "%cd%\%%~a"&if not "!inputs!"=="" call :rmpOperationOption "%cd%\%%~na")&goto rmpMenuPreview)||(if not "!inputs!"=="" (call :rmpOperationOption "%cd%\%%~a") else (start "" "%%~a"))
  47.         )
  48.     ) else echo;    "%%~a"
  49. )
  50. goto :eof
  51. :rmpOperationOption 操作设置
  52. echo "%cd%"  "%~1"
  53. if /i "!inputs!"=="PS" Explorer /select,"%~1"
  54. goto :eof
  55. :rmpHelp 帮助信息
  56. cls
  57. echo;=============================================================================
  58. echo;
  59. echo;    基本用法:输入命令或序号执行相应内容
  60. echo;    复合操作【数字+操作】如定位:5 PS
  61. echo;    历史操作【H】如:H2
  62. echo;
  63. echo;=============================================================================
  64. pause>nul
  65. goto :eof
  66. :rmpHistory 历史记录项目设置
  67. for /f %%a in ("%1") do (
  68.     set H9=!H8!
  69.     set H8=!H7!
  70.     set H7=!H6!
  71.     set H6=!H5!
  72.     set H5=!H4!
  73.     set H4=!H3!
  74.     set H3=!H2!
  75.     set H2=!H1!
  76.     set H1=%%~a
  77. )
  78. goto :eof
  79. :rmpHistoryBack 获得历史记录内容
  80. set num=0
  81. if /i "!input!"=="H" (
  82.     echo;&echo;&echo;    历史记录:
  83.     echo;    0  %rmppath%  ^<本程序位置^>
  84. )
  85. for /l %%a in (1,1,9) do (
  86.     set /a num+=1
  87.     if /i "!input!"=="H" echo;    !num!  !H%%a!
  88.     if /i !input!==H%%a cd /d !H%%a!&goto :eof
  89. )
  90. echo;
  91. set num=0
  92. set input=
  93. set /p "input=    请输入:"
  94. if /i "!input!"=="" goto rmpMenuPreview
  95. for /l %%a in (1,1,9) do (
  96.     set /a num+=1
  97.     if /i !input!==0 cd /d %rmppath%&goto :eof
  98.     if /i !input!==%%a cd /d !H%%a!&goto :eof
  99. )
  100. goto rmpMenuPreview
  101. tree /f
  102. pause
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

很不错了哦

TOP

它不能打开LNK

TOP

返回列表