batch-file - 通过右键单击任何文件来运行批处理脚本

标签 batch-file click registry

这个想法是右键单击任何文件,然后在下拉菜单中选择“备份”,该下拉菜单仅复制文件并在其名称末尾添加日期时间,然后可能将该副本移动到另一个驱动器。

我想要一种运行批处理脚本的方法,方法是右键单击文件并将其作为参数传入(不输入),或者以某种方式知道该文件是应该在脚本中使用的文件。

主要针对 Windows XP,我需要它是原生的,因为我工作的许多站点计算机不属于我们,我不想复制不必要的文件或依赖可用标准命令以外的任何东西(三分之二机器没有powershell等)

我知道如何更改文件选项以在特定文件夹位置(如下)打开 cmd,我可能会将其更改为适用于 1 种特定文件类型,但我不想为每种类型的文件添加 key 在机器上。

[HKEY_CLASSES_ROOT\Folder\shell\1.bat\command]
@="c:\windows\system32\cmd.exe\"%1\""

在另一个站点上,一个解决方法几乎可以为我解决这个问题

jvierra - “Windows 一直拥有这种能力,而无需更改注册表。

在桌面上放置一个 bat 或 VBS 文件。将文件拖放到 bat 图标上。 bat 将以 %1 的形式接收已删除文件的文件名,而 vbscript 将以 WScript.Arguments(0) 的形式接收它。

尝试一下。它工作得很好。从那时起,bat 或脚本可以对文件执行任何操作。”

最佳答案

您可以将球棒添加到“发送至”菜单。见 http://support.microsoft.com/kb/310270

简而言之,只需将您的 .bat 文件复制到用户 SendTo 文件夹中。

COPY MYBACKUP.BAT "%USERPROFILE%\SendTo"

用户调用您的 bat 选择“发送到”菜单项的选项。

对于更复杂的参数化,例如更改菜单中显示的文本或图标...您可以创建指向 .BAT 的链接并将链接放在 SendTo 文件夹中,而不是 .bat 本身
COPY "My very special backup.lnk" "%USERPROFILE%\SendTo"

您可以先运行一个快速测试。使用此内容创建一个 BAT 文件,并将其复制到 Sendto 文件夹。
@echo off
echo Current Directory is %cd%
echo Current batch run is %0 %~dpnx0
echo Subject is %1 %~dpnx1
pause  

编辑:在一些评论之后,我通过添加所需的引号更正了 COPY 命令中的 SendTo 文件夹规范;我附加了一个测试示例,并更正了 %~dpnx句法

关于batch-file - 通过右键单击任何文件来运行批处理脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6852833/

相关文章:

c# - 注册表安全设置

windows - 批量替换 !-sign

windows - 如何使用批处理/命令脚本一次从多个文件夹中删除文件名前缀?

angularjs - 点击 ng 时生成动态 html

android如何编写edittext的onclick事件

windows - 如何使用许可证 key 输入制作 Windows 安装程序包

python - 如何对文件夹中的所有文件运行批处理文件?

Windows 批处理多任务问题——代码清理

jquery - 如何使用 jQuery 更改点击时的背景颜色?

c# - 如何使用C#向注册表插入任何值?