windows - mklink:指向批处理文件的符号链接(symbolic link)未运行批处理文件

标签 windows batch-file cmd mklink

这里的问题是,在创建批处理文件的符号链接(symbolic link)后,该链接不会运行批处理文件。示例:

mklink x x.cmd

当点击 x 时,它会在记事本中打开 x.cmd!普通快捷方式(.lnk 文件)按预期工作。

> ftype cmdfile
cmdfile="%1" %*
> assoc .cmd
.cmd=cmdfile

因此每个 .cmd 文件都应该自行运行。

有解决办法吗?

最佳答案

一种方法是创建硬链接(hard link) (mklink/H)。但是因为我认为你只需要某种捷径,试试这个:

1) 像这样制作一个 shell 脚本 *.vbs (shortcut_helper.vbs):

set WshShell = WScript.CreateObject("WScript.Shell" )
set oShellLink = WshShell.CreateShortcut(Wscript.Arguments.Named("shortcut") & ".lnk")
oShellLink.TargetPath = Wscript.Arguments.Named("target")
oShellLink.Arguments = Wscript.Arguments.Named("arg")
oShellLink.WindowStyle = 1
oShellLink.Save

2) 让你的批处理脚本像这样从批处理文件开始:

path_to_vbs\shortcut_helper /target:"file_path\file.bat" /shortcut:"shortcut_name" /arg:"optional_arguments"

现在 2) 为您创建快捷方式 (*.lnk),然后您可以将它们移动到任何您喜欢的地方 =)

不过要小心,*.vbs 文件在某些​​情况下可能需要管理员权限。

关于windows - mklink:指向批处理文件的符号链接(symbolic link)未运行批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14983377/

相关文章:

node.js - 如何在 npm 运行时设置 Windows 控制台的标题?

batch-file - 如何在批处理文件中回显包含特殊字符的 ASCII 艺术?

php - PHP $argv 在 Windows 上是否限制为 9 个参数?

windows - Perforce 安装在 Windows 的网络文件夹中

windows - 在单个 If 条件下比较具有多个值的变量

windows - 如何以编程方式检索区域和语言设置中显示的 "Location"?

batch-file - “if an ' exe 的批处理文件'未在(任务管理器)中运行,然后执行此任务”?

用于导出的 MySQL 批处理文件调用刷新表

windows - 如何从基于自身的批处理脚本中找出第三个目录 - %0

java - 如何从 Windows 命令行中的类路径中排除特定的 jar 文件?