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

[文件操作] [已解决]学·知-讨论-用Bat快速为文档进行文件名分级标注-发送到模式

本帖最后由 34205 于 2016-1-10 19:25 编辑

如题:[已解决]

1\权限不够,在论坛前辈指点下改进好的代码,所以只能到这里分享给需要的Bat友了.

2\需求案例:
对同一个功能的PPT到网上下载了N多个PPT,显然每个PPT有优秀的也有差的,
我们常因为找到好的PPT感慨真是太棒了,赶紧收藏,而差的也要标注出来,
显然通过文件夹分级文件会因为后期文件搜索及移动而不是最好办法,系统的文件分级也只能分级影音
因此较佳的方法是可能需要进行重命名标记
好的   A.ppt                         小刘收藏_1级_A.ppt
一般   B.ppt                         小刘收藏_2级_B.ppt
差的  C.ppt                          小刘收藏_5级_C.ppt
因此,随着经常的收集网络资源,对文件分级分类变得很关键,经常的F2重命名,输入同样的 小刘收藏_2级_ 显然不够方便
当然有扫把文件重命名等文件重命名工具,但是每次一个文件就打开扫把显得不够方便

3\因此,本帖分享一种Bat给文件分级的办法,给大家借鉴参考.欢迎将不足之处提出.(本Bat需要Windows7以上系统,其他系统可自行参考修改)

4\方案:
a,创建几个Bat到系统(Sendto文件夹,我们知道这个是右键发送到的文件夹,每个文件上右键都有这个菜单项,很方便)
b,在需要修改文件名的文档上右键发送到.Done
c,修改Bat支持一键创建到发送目录,方便快捷

5\测试结果:
一, 运行 S-学习-BAT-BAT代码-批处理实现-批处理右键加当前文件名前缀后缀.Bat
二, 对文件 演界网动态PPT.ppt 上右键发送到 S_学习_.bat
三, 文件重命名为S_学习_演界网动态PPT.ppt

5\源码:二楼
我个人经常用的分级 前缀 和 后缀
S_
S_学习_
S_记录_
S_软件_
S_系统_

  1. @echo off
  2. Rem mode con cols=68 lines=24
  3. Color a
  4. Cls
  5. echo =================说明区========================
  6. Echo.
  7. Echo [批处理怎样右键改当前文件名前缀]
  8. Echo 学习-BAT-BAT代码-批处理实现-批处理怎样右键改当前文件名前缀
  9. Echo.
  10. Echo 本插件Bat实现以下功能:
  11. Echo 在文件名上右键可弹出菜单,
  12. Echo 菜单上有1、2、3、。。。。17个项目
  13. Echo 选1时,就在原文件名前加前缀0.[S_]
  14. Echo 选2时,就在原文件名前加前缀1.[S_系统_]
  15. Echo 选3时,就在原文件名前加前缀2.[S_软件_]
  16. Echo 选3时,就在原文件名前加前缀3.[S_记录_]
  17. Echo.
  18. Echo 本代码运用于Windows7以上系统.....
  19. Echo.
  20. echo =======================================S34205==
  21. Echo.
  22. Ping -n 2 127.1>nul
  23. Rem Pause
  24. echo =================代码区========================
  25. :Do_My
  26. :Go_DO
  27. Set "Temp_folder_Do=%userprofile%\AppData\Roaming\Microsoft\Windows\SendTo"
  28. if exist "%Temp_folder_Do%\*.*" (Echo 系统正确:是Windows7以上版本... ) else (Echo. &Echo. &Echo 系统错误:非Windows7以上版本... &Echo. &Ping -n 10 127.1>nul &Goto Out)
  29. Echo 设置开始:
  30. rem 设置“发送到”的一级菜单
  31. set "TopMenu=加前缀_"
  32. Echo 一级菜单:%TopMenu%
  33. rem 设置前缀
  34. set "list_before=S_ S_系统_ S_软件_ S_记录_  S_图片_  S_学习_"
  35. rem 设置后缀
  36. set "list_after=x_绿色 x_作品"
  37. Echo 设置菜单:%list%
  38. set "Temp_folder=%Temp_folder_Do%"
  39. Echo 设置文件:%Temp_folder%
  40. if exist "%Temp_folder%\*.bat" (Echo 文件存在:... &Del /s /q "%Temp_folder%\*.bat">nul) else (Echo 文件不在:...)
  41. Cd %Temp_folder%
  42. Echo 工作路径:%Temp_folder%
  43. :Go_Do_As
  44. Echo.
  45. setlocal enabledelayedexpansion
  46. set n=0
  47. for %%a in (%list_before%) do (
  48.     >"%Temp_folder%\%%a.bat" echo ren %%1 "%%~n0%%~nx1"
  49.     set /a n += 1
  50. Echo 设置前缀:第!n!右键菜单【%%a】....
  51. )
  52. for %%k in (%list_after%) do (
  53.     >"%Temp_folder%\%%k.bat" echo ren %%1 "%%~n1%%~n0%%~x1"
  54. Rem 【百分号】转义,%~n1是拖入文件名,%~n0是批处理名,%~x1是拖入文件扩展名
  55.     set /a n += 1
  56. Echo 设置后缀:第!n!右键菜单【%%a】....
  57. )
  58. Goto Un_Do_Set
  59. Goto Out
  60. :Out
  61. Echo.
  62. Set T=3
  63. Echo 设置完成:%T%...
  64. Ping -n %T% 127.1>nul
  65. Exit
  66. :Un_Do_Set
  67. Cd %Temp_folder_Do%
  68. :Go_Do_As_Open
  69. Rem ==========以下一句是添加快速打开Windows\SendTo文件夹以修改编写测试的,可以去掉
  70. Rem Echo Start "" "%%userprofile%%\AppData\Roaming\Microsoft\Windows\SendTo" >"%userprofile%\AppData\Roaming\Microsoft\Windows\SendTo\打开目录_发送到.bat"
  71. Rem ==========以上一句是添加快速打开Windows\SendTo文件夹以修改编写测试的,可以去掉
  72. Goto Out
  73. Echo.
  74. Echo 设置删除:...
  75. Ping -n 5 127.1>nul
  76. for /f "delims=" %%i in ('dir /a-d/s/b %Temp_folder_Do%\*.bat') do (
  77. Echo 设置删除:%%i
  78. del /f /s /q %%i >nul
  79. Rem 这里的【>nul 】表示命令运行正常不显示相关信息,而 2>nul表示不管命令是否正常运行都不显示任何信息
  80. )
  81. Goto Out
  82. echo =================代码区========================
  83. echo =================说明区========================
  84. =============================
  85. :Do_Test_
  86. Echo 设置开始:
  87. Echo.
  88. setlocal enabledelayedexpansion
  89. rem 设置“发送到”的一级菜单
  90. set "TopMenu=加前缀_"
  91. Echo 一级菜单:%TopMenu%
  92. rem 设置前缀
  93. set "list=S_ S_系统_ S_软件_ S_记录_  S_图片_  S_学习_  S__  S___"
  94. Echo 设置菜单:%list%
  95. Rem set "folder=%userprofile%\SendTo\%TopMenu%"
  96. set "folder=%userprofile%\SendTo"
  97. Echo 设置文件:%folder%
  98. if exist "%folder%" (Echo 文件存在:... &Rd /s /q "%folder%") else (Echo 文件不在:...... &md "%folder%")
  99. if not exist "%folder%" md "%folder%"
  100. set n=0
  101. for %%a in (%list%) do (
  102.      >"%folder%\!n!.[%%a].bat" echo ren %%1 "%%~n0%%~nx1"
  103. Echo 设置前缀:第!n!右键菜单【!n!.[%%a]】....
  104.     set /a n += 1
  105. )
  106. Goto Out
  107. =============================
  108. echo =================说明区========================
复制代码

TOP

返回列表