【问题标题】:How to add batch script to context menu of multiple computers如何将批处理脚本添加到多台计算机的上下文菜单
【发布时间】:2015-07-30 22:40:20
【问题描述】:

我一直在尝试设置一个可以从文件夹内的上下文菜单运行的批处理脚本。批处理脚本的目的是用预定的文件夹结构填充文件夹。

这需要在多台计算机(Windows 7-10)上复制,所以我的想法是使用两个批处理文件和一个 .reg 文件进行网络共享。其中一个标记为“install.cmd”的批处理文件会将另一个标记为“Subfolders.cmd”的批处理文件复制到 C 驱动器上的文件夹中,然后运行 ​​.reg 文件以在上下文菜单上将快捷方式安装到“Subfolders.cmd”。 cmd" 批处理文件。

我已经创建了“Subfolders.cmd”批处理文件并且它可以工作,但它必须从我想要设置文件夹结构的文件夹中运行。我将不胜感激有关如何创建“install.cmd”的任何帮助" 将在 C 驱动器上创建文件夹的批处理脚本,将“Subfolders.cmd”脚本复制到其中,然后运行 ​​.reg 文件以在上下文菜单中创建允许“Subfolders.cmd”批处理脚本执行的项目在选定的文件夹中运行。

如果有任何示例和/或建议更有效地执行此操作,我将不胜感激。谢谢!

更新:根据要求,我已经发布了在打开的文件夹中生成子文件夹的代码。这很简单。

md "Folder1" "Folder1/Sub1A" "Folder1/Sub1B" "Folder2" "Folder2/Sub2A" "Folder2/Sub2B"

【问题讨论】:

标签: windows batch-file cmd registry contextmenu


【解决方案1】:

不需要所有这些复制。

"\\computername\sharename\folder\file.bat"

将运行存储在另一台计算机上的批处理文件。

同上 reg 命令

regedit /s "\\computername\sharename\folder\file.reg"

您可以使用较旧的映射驱动器以及 UNC 执行上述操作。

您需要展示您的第二个脚本,以便我们了解为什么它需要在文件夹中。

编辑

您需要指定完整路径。

要获取起始文件夹,请在注册表命令中使用%V。所以(让我们摆脱 reg 文件)(添加你的 bat 而不是 echo)

reg add "HKCR\Directory\Background\Shell\Test Command\command" /ve /t REG_EXPAND_SZ /d "cmd /k echo ""%V"""

在您的批处理中,使用 %1 获取起始文件夹,并使用波浪号 (%~1) 删除引号(有关文档,请参阅 call /?)。 (请记住从最低级别创建文件夹,因为更高级别会自动创建)。

md "%~1\folder1\folder2"

【讨论】:

  • 比尔,我已按照您的要求使用代码更新了我的原始帖子。我认为将批处理文件保存在网络共享上具有优势,包括一个可以根据需要进行更新的中心位置。谢谢你的主意!不知道为什么我没有想到这一点。我仍然需要在文件夹中运行批处理文件,而我找到的关于将批处理文件添加到上下文菜单的答案似乎对我没有多大帮助,因为它们似乎没有运行批处理打开文件夹中的文件。
  • 您可以看到一个内置到带有打开的命令提示符背景菜单项的窗口中的工作示例。
  • 我无法让它工作。当您说我需要用我的 bat 替换 echo 时,您是否打算将其读取为 "cmd /k md "%~1\Folder1\Folder2" ""%V""" 或 "cmd /k \\network address\share folder \file.bat ""%V""" ?我都试过了,都没有成功。
猜你喜欢
  • 1970-01-01
  • 2011-05-12
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
相关资源
最近更新 更多