日常应用中,许多软件都会在安装过程最后一步添加多个命令,针对其应用创建快捷方式发送到桌面以及快速启动栏和开始菜单,供人们快速找到并打开。在我的使用习惯中也会将诸多常用的应用右键-发送到-桌面快捷方式来实现快速启动。但是偶然一次的使用中,应用和其对应的快捷方式都移植到了另一台机子上,发现打开快捷方式会有问题。这就引起了我的注意。对地址、路径敏感一点的同行都能想到肯定是传统的快捷方式使用了绝对的地址,而想要移植,那么相对路径是一个好对策。

就像这样对一个.exe右键创建快捷方式:

我们右键属性,可以看到用到的是绝对路径。倘若移植到了不同环境,那么该快捷方式就不能正常运行。如何来修改呢?

正文

如果想要直接在该文件属性上修改是不好实现的,反正我没成功。我们尝试采用正常的流程创建快捷方式--- 右键资源管理器中得文件夹区域-新建-快捷方式,会弹出下方对话框:

如果选择“浏览”,可以选择文件或文件夹,但还是绝对地址。在此要手动输入。

使用Explorer方式

键入

%SystemRoot%\explorer.exe

然后后面加上打开的文件或文件名,使用相对路径,如:

%SystemRoot%\explorer.exe abc

意思是打开该目录下的名为‘abc’的文件夹。%SystemRoot%是系统环境变量,详情请见计算机-高级系统设置-环境变量。注意创建完快捷方式要右键-属性把[起始位置]删除,如下:

这样就可以实现相对路径下打开文件夹,如果想打开文件,如下键入:

%SystemRoot%\explorer.exe .\main\_conf\config.ini
%SystemRoot%\explorer.exe .\HxD.exe

甚至还可以打开根目录下的上级目录中的一个文件夹,如:

%SystemRoot%/explorer.exe ..\steam

此命令代表打开当前目录的上级目录中名为‘steam’的文件夹。

这样的调用方式,就不怕移植、换环境了。

使用cmd.exe方式

同样的道理,创建快捷方式,键入:

%windir%\system32\cmd.exe /c

然后后面加标准的dos批处理命令,如运行一个应用[注意这里的 /c一定得加,不然dos界面会跳出等待用户输入,这不是我们要的,让它开一个dos命令后立即关闭dos界面]:

%windir%\system32\cmd.exe /c .\HxD.exe

还是要看一下属性中的[起始位置],把它清空。当然这里可以使用start启动应用,如:

%windir%\system32\cmd.exe /c start .\HxD.exe

如果要打开文件夹:

%windir%\system32\cmd.exe /c start .\abc

当然,你还可以以正常的批处理代码键入,如:

%windir%\system32\cmd.exe /c echo hello world>.\hello.txt

还可以多指令执行,如:

%windir%\system32\cmd.exe /c echo hello world>.\hello11.txt & start .\hello11.txt

这样也可以极大满足环境变化。

总结

【注意】所有键入的斜杠、反斜杠都是敏感的,不能随意更改,否则无效!!

这两方式殊途同归,给不同环境下快捷方式正常运行做好基础。有了此解决方案后,开发后期也能得到应用,做一些快捷通道,包括执行语句、调用文件等操作、逻辑判断、文件读写、数据通讯等功能,个人认为挺酷的 我们下回再见!~

参考文献:

[1]      https://www.cnblogs.com/vibratea/archive/2010/09/16/1827761.html DOS中Start命令详解

[2]      https://www.zhihu.com/question/20061568 Windows 中如何创建一个指向某相对路径的快捷方式 。。。

[3]      https://blog.csdn.net/ju_pan/article/details/79454394 创建使用相对路径的快捷方式

Windows下快捷方式 (*.lnk) 的使用技巧整理的更多相关文章

  1. linux下gdb调试方法与技巧整理

    参考博客:  https://blog.csdn.net/niyaozuozuihao/article/details/91802994 1.运行命令run:简记为 r ,其作用是运行程序,当遇到断点 ...

  2. SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧

    SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧 VanDyke CRT 和 VanDyk ...

  3. Windows 下目录切换以及挂载小技巧

    Windows 下目录切换以及挂载小技巧 一.前言: 作为几年的 Linux 老用户,再购买了一款新的本本只支持 Windows(主要是Linux下的驱动)操作系统后,加之发现 Windows 提供 ...

  4. [转载]windows下mongodb安装与使用整理

    windows下mongodb安装与使用整理 一.首先安装mongodb 1.下载地址:http://www.mongodb.org/downloads 2.解压缩到自己想要安装的目录,比如d:\mo ...

  5. Windows下程序打包发布时的小技巧

    一.背景 Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作 ...

  6. 个人整理的 Windows 下 .NET 开发必装的软件

    注: 最后更新时间:2019-03-15 一..NET 开发 1. 必装 软件名称 说明 下载地址 JetBrains Toolbox JetBrins 全家桶管理工具. 下载地址 JetBrains ...

  7. Windows下SVN服务器搭建方法整理(apache)

    http://skydream.iteye.com/blog/437959 http://www.cnblogs.com/liuke209/archive/2009/09/23/1572858.htm ...

  8. Windows下程序打包发布时的小技巧(使用Dependency Walker侦测不理想,改用VS自带的dumpbin则万无一失,还可查看dll导出的函数)

    Windows下开发的应用程序在发布时,需要将其依赖的一些动态链接库一起打进安装包里面去.这个时候,快速确定这个程序到底依赖哪些动态链接库变得非常重要.很久以前写过一篇关于Qt程序安装包制作的博客,里 ...

  9. 使用bat/vbs/ahk对Windows下进行自动化操作

    回想90年代,我们在DOS下使用各种命令链对操作进行简化和自动化,如DOS 5.0添加的DosKey,利用管道和重定向对多组命令进行链式操作.后来使用了Ubuntu和其它Linux发型版后,bash下 ...

  10. Windows 下对目录建立软链接

    在Linux下,可以很方便的通过ln命令创建对文件和对文件夹的软链接.在Windows下,通过快捷方式,可以创建到文件和文件夹的链接,但是这软链接不是一个层面的上东西.软链接是底层文件系统层面的,而快 ...

随机推荐

  1. vue前端代码npm install报错的解决方法

    npm install,报错: npm WARN tarball tarball data for has-bigints@https://registry.npmmirror.com/has-big ...

  2. 百度地图各种控件:地图平移缩放控件NavigationControl、地图类型控件MapTypeControl

    注:代码复制即可用,标色代码为主要代码 百度地图提供了如下控件: 1.Control:控件的抽象基类,所有控件均继承此类的方法.属性.通过此类您可实现自定义控件. 2.NavigationContro ...

  3. 推荐 groovy 的 sql 模块

    发现 groovy 的 sql 很好用,写下来代码风格和 d2js 很像,唯一的不足是没有 sql{..} 块的设计,但对 Java 程序员来说它已经非常友好了,来自它的网站的一段示例: Now yo ...

  4. virtualbox设置了共享文件夹却无权限访问

    在virtualbox中设置共享文件夹后,然后登陆ubuntu系统访问共享文件夹,发现没有权限.查看共享文件夹的属性可知,共享文件夹的所有者是root,所属的组是vboxsf.以用户登录的时候,自然是 ...

  5. Spring boot 2.0 之优雅停机

    spring boot 框架在生产环境使用的有一段时间了,它"约定大于配置"的特性,体现了优雅流畅的开发过程,它的部署启动方式(java -jar xxx.jar)也很优雅.但是我 ...

  6. mybatis-plus逻辑删除不生效的解决办法

    我们在使用mybatis-plus时,一般设备逻辑删除是非常简单的,基本上在yaml等配置文件中做一下配置.然后在字段上注解@TableLogic就可以了.有不清楚的,可以参考https://www. ...

  7. JVM简介—3.JVM的执行子系统

    大纲 1.Class文件结构 2.Class文件格式概述 3.Class文件格式详解 4.字节码指令 5.类的生命周期和初始化 6.类加载的全过程 7.类加载器 8.双亲委派模型 9.栈桢详解 11. ...

  8. Qt音视频开发33-vlc和mpv打开后鼠标打圈圈问题的解决

    一.前言 如果采用的vlc句柄模式,如果鼠标停留在句柄控件中会发现在打开后鼠标打圈圈,mpv句柄模式是在关闭后鼠标打圈圈,这两者真是一前一后,这种给人的体验其实很不友好的,播放开始后或者播放完成后鼠标 ...

  9. IM通讯协议专题学习(四):从Base64到Protobuf,详解Protobuf的数据编码原理

    本文由腾讯PCG后台开发工程师的SG4YK分享,进行了修订和和少量改动. 1.引言 近日学习了 Protobuf 的编码实现技术原理,借此机会,正好总结一下并整理成文. 接上篇<由浅入深,从根上 ...

  10. 基于Netty,从零开发IM(四):编码实践篇(系统优化)

    本文由作者"大白菜"分享,有较多修订和改动.注意:本系列是给IM初学者的文章,IM老油条们还望海涵,勿喷! 1.引言 前两篇<编码实践篇(单聊功能)>.<编码实践 ...