Board logo

标题: [文件操作] [已解决]批处理如何添加文件右键菜单项目,以快速对文件执行特定操作? [打印本页]

作者: 34205    时间: 2015-9-30 21:35     标题: [已解决]批处理如何添加文件右键菜单项目,以快速对文件执行特定操作?

本帖最后由 pcl_test 于 2016-8-9 09:54 编辑

如题:
1、目地:快速对特定扩展名文件,添加右键选项菜单,该选项可执行特定规则的重命名操作
2、假设:被处理格式为【.Doc】,假设被处理文件名为【Install_ISKA396-安装补丁.Doc】
3、功能代码:现已取得操作代码(RenameDoBat.bat)为之前帖子《[已解决]批处理怎样把文件名按规则重命名:按其连续字母连续数字判断》的5楼代码, 详见 http://www.bathome.net/thread-37467-1-2.html
4、功能规则:(已获得Bat代码)大致为按 【连续三个以上字母+零或一个符号+连续三个以上数字】为编码重命名文件,为节省时间贴出 (RenameDoBat.bat)于底代码:
5、想要的代码功能:在.Doc格式文件上右键点击重命名选项,则将调用(RenameDoBat.bat)对文件(Install_ISKA396-安装补丁.Doc)按规则重命名为(ISKA396安装补丁.Doc)
假设目的如图:[attach]9150[/attach]
6、逛了论坛寻求方法,已经在论坛找到参考的方法(但还是无效):(其效果:要双击.Doc文件运行了C:\Temp\RenameDoBat.bat %%1,显然还不是我们想要的)
  1. for /f "delims=" %%a in ('assoc .Doc') do set %%a
  2. if not defined .Doc (set ".Doc=Docfile" & assoc .Doc=Docfile)
  3. Set RegPath=HKEY_CLASSES_ROOT\%.Doc%\shell\Rename
  4. reg add "%RegPath%" /ve /d "目录子文件批量改名BR(&R)" /f >nul
  5. reg add "%RegPath%\command" /ve /d "C:\Temp\RenameDoBat.bat %%1" /f >nul
复制代码
7、显然双击.Doc调用(RenameDoBat.bat)进行重命名不是我们想要的(因为这个功能要留给Word打开文件用),且右键菜单上出现的项目点击无任何反应(难道无效)
8、所以寻求前辈指点,非常感谢BatHome给大家带来的便利

【节省时间】快速创建测试环境:
  1. @echo off
  2. MD C:\Temp
  3. Echo "" >C:\Temp\RenameDoBat.bat
  4. Echo "" >C:\Temp\Install_ISKA396-安装补丁.Doc
复制代码
【测试需要的】其中(RenameDoBat.bat)内容(感谢前辈们的代码):此代码为文件夹内的所有文件重命名的,如何改成单一文件处理呢,那样才能传递%%1吧
http://www.bathome.net/redirect. ... 5130&ptid=37467
作者: bailong360    时间: 2015-10-1 09:21

  1. @echo off
  2. for /f "tokens=2 delims==" %%i in ('assoc .doc') do (
  3.     Reg Add "HKCR\%%i\shell\RenName" /v "" /t REG_SZ /d "文件改名BR(&R)" /f
  4.     Reg Add "HKCR\%%i\shell\RenName\command" /v "" /t REG_SZ /d "C:\Temp\RenameDoBat.bat %%1" /f
  5. )
复制代码
RenameDoBat.bat前面改成这样
  1. @echo off & setlocal enabledelayedexpansion
  2. call :parse "%~n1" identify chinese
  3. echo;%1 --》 !identify!!chinese!%~x1
  4. pause & exit /b
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2