批处理系列(15)

run a batch file at folder's context menu.

add a right click menu action that runs a custom batch script.

本篇无知识点,只是将前面写的,弄到右键菜单,方便随时调用。


对以前批处理代码进行调整,主要是对进入的目录参数进行调整。

这里要把一个批处理文件做两份处理:
set "HandleDir=%~1"对应到HKEY_CLASSES_ROOTDirectoryshell
set "HandleDir=%cd%"对应到HKEY_CLASSES_ROOTDirectoryBackground

执行时分别为
@="cmd.exe /c C:\bat\dir.bat %1 "%V""
@="cmd.exe /c C:\bat\dir-bg.bat %cd% "%V""

我这里是将处理之后的批处理文件放在了C:at这里不贴代码了,点击链接下载查看源码

  • 文件命名操作 - file.bat, file-bg.bat
  • 目录命名操作- dir.bat, dir-bg.bat
  • 获取文件和目录名-name.bat, name-bg.bat

保存并执行下面文件和目录命名操作.reg文件,然后在目标目录鼠标右键就可以选择相关操作项了。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTDirectoryshellxfiles]
@="文件命名操作(&A)"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOTDirectoryshellxfilescommand]
@="cmd.exe /c C:\bat\file.bat %1 "%V""

[HKEY_CLASSES_ROOTDirectoryBackgroundshell]
[HKEY_CLASSES_ROOTDirectoryBackgroundshellxfiles]
@="文件命名操作(&A)"
[HKEY_CLASSES_ROOTDirectoryBackgroundshellxfilescommand]
@="cmd.exe /c C:\bat\file-bg.bat %cd% "%V""

[HKEY_CLASSES_ROOTDirectoryshellxdir]
@="目录命名操作(&Q)"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOTDirectoryshellxdircommand]
@="cmd.exe /c C:\bat\dir.bat %1 "%V""

[HKEY_CLASSES_ROOTDirectoryBackgroundshell]
[HKEY_CLASSES_ROOTDirectoryBackgroundshellxdir]
@="目录命名操作(&Q)"
[HKEY_CLASSES_ROOTDirectoryBackgroundshellxdircommand]
@="cmd.exe /c C:\bat\dir-bg.bat %cd% "%V""

[HKEY_CLASSES_ROOTDirectoryshellxfiledirname]
@="文件和目录名(&Z)"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOTDirectoryshellxfiledirnamecommand]
@="cmd.exe /c C:\bat\name.bat %1 "%V""

[HKEY_CLASSES_ROOTDirectoryBackgroundshell]
[HKEY_CLASSES_ROOTDirectoryBackgroundshellxfiledirname]
@="文件和目录名(&Z)"
[HKEY_CLASSES_ROOTDirectoryBackgroundshellxfiledirnamecommand]
@="cmd.exe /c C:\bat\name-bg.bat %cd% "%V""


右键菜单添加命令行入口.reg保存并执行,在任何目录即可调用cmd。此功能跟批处理没关系,可忽略。

Windows Registry Editor Version 5.00

;[-HKEY_CLASSES_ROOTDirectoryshellxcmd]
;[-HKEY_CLASSES_ROOTDirectoryBackgroundshellxcmd]
;[-HKEY_CLASSES_ROOTDriveshellxcmd]
;[-HKEY_CLASSES_ROOTLibraryFolderackgroundshellxcmd]

[HKEY_CLASSES_ROOTDirectoryshellxcmd]
@="CLI"
[HKEY_CLASSES_ROOTDirectoryshellxcmdcommand]
@="cmd.exe /s /k pushd "%V""

[HKEY_CLASSES_ROOTDriveshellxcmd]
@="CLI"
[HKEY_CLASSES_ROOTDriveshellxcmdcommand]
@="cmd.exe /s /k pushd "%V""

[HKEY_CLASSES_ROOTDirectoryBackgroundshell]
[HKEY_CLASSES_ROOTDirectoryBackgroundshellxcmd]
@="CLI"
[HKEY_CLASSES_ROOTDirectoryBackgroundshellxcmdcommand]
@="cmd.exe /s /k pushd "%V""

[HKEY_CLASSES_ROOTLibraryFolderackgroundshellxcmd]
@="CLI管理员(&X)"
[HKEY_CLASSES_ROOTLibraryFolderackgroundshellxcmdcommand]
@="cmd.exe /s /k pushd "%V""

;[-HKEY_CLASSES_ROOTDirectoryshell
unas]
;[-HKEY_CLASSES_ROOTDirectoryBackgroundshell
unas]
;[-HKEY_CLASSES_ROOTDriveshell
unas]
;[-HKEY_CLASSES_ROOTLibraryFolderackgroundshell
unas]

[HKEY_CLASSES_ROOTDirectoryshell
unas]
@="CLI管理员(&X)"
"HasLUAShield"=""
[HKEY_CLASSES_ROOTDirectoryshell
unascommand]
@="cmd.exe /s /k pushd "%V""

[HKEY_CLASSES_ROOTDirectoryBackgroundshell
unas]
@="CLI管理员(&X)"
"HasLUAShield"=""
[HKEY_CLASSES_ROOTDirectoryBackgroundshell
unascommand]
@="cmd.exe /s /k pushd "%V""

[HKEY_CLASSES_ROOTDriveshell
unas]
@="CLI管理员(&X)"
"HasLUAShield"=""
[HKEY_CLASSES_ROOTDriveshell
unascommand]
@="cmd.exe /s /k pushd "%V""

[HKEY_CLASSES_ROOTLibraryFolderackgroundshell
unas]
"HasLUAShield"=""
@="CLI管理员(&X)"
[HKEY_CLASSES_ROOTLibraryFolderackgroundshell
unascommand]
@="cmd.exe /s /k pushd "%V""


转载保留原文地址和作者名,只为错误勘正和信息补充。
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

原文地址:https://www.cnblogs.com/daxiang/p/8572751.html