这个想法是右键单击任何文件,然后在下拉菜单中选择“备份”,该下拉菜单仅复制文件并在其名称末尾添加日期时间,然后可能将该副本移动到另一个驱动器。
我想要一种运行批处理脚本的方法,方法是右键单击文件并将其作为参数传入(不输入),或者以某种方式知道该文件是应该在脚本中使用的文件。
主要针对 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/