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

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

本帖最后由 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)
假设目的如图
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
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

  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
复制代码
1

评分人数

    • 34205: 完美解决,感谢前辈指点技术 + 1

TOP

返回列表