这里的问题是,在创建批处理文件的符号链接(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/