Windows 10下创建可执行文件符号链接/连接点的方法及运行报错问题咨询
Windows 10下创建可执行文件符号链接/连接点的方法及运行报错问题咨询
你好,我来帮你拆解下这个问题~
首先得明确:你用mklink /j创建的是目录连接点(Junction),这种链接类型是专门为目录设计的,压根不支持单个文件(包括.exe可执行文件)。这就是为什么你明明创建了foo.exe的连接点,运行时却报错说它不是可执行程序的原因——系统没法把目录连接点当成可执行文件来解析。
那要实现你的需求,也就是让脚本里的start c:\p\npp\notepad++.exe能正常工作,有两种靠谱的方法:
方法一:创建文件符号链接(推荐)
使用不带/j参数的mklink命令(默认不带参数就是创建文件符号链接),命令格式如下:mklink foo.exe c:\Windows\System32\cmd.exe这种针对文件创建的符号链接,系统会正确识别它的可执行属性,运行
foo.exe就能正常唤起对应的程序了。对应到你的notepad需求,只需要把命令里的路径换成notepad.exe的真实路径就行,脚本里的start命令可以直接调用这个符号链接。方法二:创建快捷方式
如果你不习惯用命令行,也可以右键创建快捷方式,把目标指向你要链接的可执行文件(比如c:\Windows\System32\cmd.exe),然后把快捷方式命名为foo.exe(注意Windows默认隐藏已知扩展名,实际快捷方式的扩展名是.lnk)。不过用start命令调用时,可能需要明确加上.lnk扩展名,比如start foo.exe.lnk,或者确保系统能自动识别这个快捷方式。
简单总结下:目录连接点(/j)只针对文件夹,单个文件要用文件符号链接或者快捷方式才能让系统正确识别并运行哦。
备注:内容来源于stack exchange,提问作者PatS




