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

就像这样对一个.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. COSBrowser iOS 版 | 如何不打开 App 查看监控数据?

    您是否有遇到这样的场景?当需要实时查看存储监控数据.查看某个存储桶的对象数量,又或者想了解某一个存储类型文件的下载量在当前与前一天的对比情况,是上涨了还是下降了,这时您是否也在经历频繁的打开关闭 Ap ...

  2. React 的界面与数据分离问题

    React 生态庞大,没办法只能学一点.第一段学完就有一个根本性的问题了:它竟然把数据.业务逻辑和界面混在一起,组件变成了有"业务状态"的组件,这就意味着UI和业务绑定了.而这种糟 ...

  3. rabbitmq3.7.3 发布了一个新的 exchange x-random

    direct exchange 同一个 routing key 可以绑定多个 queue,当给这个routing key发消息时,所有 queue 都会投递.这个行为对于一些场景不适用,有时我们希望只 ...

  4. Scrum 和我主张的管理方式的同与异

    虽然零零星星接触过scrum的一些知识,之前并没有深入了解过.这次机缘巧合,将 Jeff Sutherland 的<用一半的时间做两倍的事>拜读完毕,感觉 scrum 的做法其实很多和我自 ...

  5. 执行docker-compose up -d时出现ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule

    原因是因为防火墙关闭之后需要重启docker服务. 执行: service docker restart 即可.

  6. Qt开发经验小技巧121-130

    QLineEdit除了单纯的文本框以外,还可以做很多特殊的处理用途. 限制输入只能输入IP地址. 限制输入范围,强烈推荐使用 QRegExpValidator 正则表达式来处理. //正在表达式限制输 ...

  7. [转]Mybatis入门和简单Demo

    原文链接: 1.Mybatis入门和简单Demo 2.Mybatis的CRUD案例 3.Mybatis分页查询与动态SQL

  8. 陌陌技术分享:陌陌IM在后端KV缓存架构上的技术实践

    本文由冀浩东分享,原题"单核QPS近6000S,陌陌基于OceanBase的持久化缓存探索与实践",为了阅读便利,本文进行了排版和内容优化等. 1.引言 挚文集团于 2011 年 ...

  9. Note -「基本子串结构」速通笔记

      学习自 crashed 的<一类基础子串数据结构>摘抄及注解, 略过了一些 crashed 口中 "用不上" 的东西. 这里是速通笔记, 希望快速学习技巧的读者可以 ...

  10. Solution -「WC 2014」「洛谷 P3920」紫荆花之恋

    \(\mathscr{Description}\)   Link.   维护一棵树,初始时树空.接下来 \(n\) 次操作,每次操作加入一片叶子 \(u\),\(u\) 到其邻接点的边权为 \(w\) ...