很多人都有使用绿色软件的习惯,在这里我简单称其为Portable App

将这些软甲放到U盘中随身携带,便于我们使用更加符合自身习惯的功能软件。

相信习惯将软件放到U盘启动都会碰到一个问题,就是每次打开这些软件就需要在目录中寻找对应的启动文件了。

多数人日常生活中都会通过使用快捷方式启动软件,那么我们如何在U盘中创建快捷方式呢:

首先,大家尝试在U盘中创建快捷方式都会发现,创建的快捷方式都存在一个尴尬的问题,就是盘符问题,

即我们在一台电脑上为U盘(H:\)创建快捷方式,如:"H:\Portable\AllMyNotes Organizer Portable\AllMyNotes.exe"

那么在另一台电脑上打开U盘(G:\)上的快捷方式,就会发现无法打开对应的程序了。因为"H:\..."是绝对路径的写法。

如何解决这个打开问题呢

1.下面先为大家介绍下系统环境变量的一个概念:

  在PATH中大家会发现例如:%SystemRoot%的路径写法,再比如开发人员配置JDK环境变量时经常配置%JAVA_HOME%,

  这里说明下在Windows环境下,%SystemRoot%是Windows自带的一个指向系统根目录的一个默认配置项,

  不同于我们自己配置的环境变量时需要单独配置JAVA_HOME的环境变量,它不需要人为去配置指定。

2.其次介绍Windows系统中每天必用的explorer.exe文件资源管理器。

  需要注意文件资源管理器并不是单纯的只有你打开 我的电脑进行文件浏览,文件的增删改查时才会用到,
  Windows的基础依赖之一就是文件资源管理器,它的详细介绍感兴趣的可以单独去百度,我告诉大家一个直接检测的方式

  在我们的任务管理器的详细信息中结束explorer.exe,不出意外除了你当前调用的窗口,桌面的其它地方都无法正常显示,

  这时再已管理员权限创建explore.exe的任务,桌面才能正常显示,但是之前打开的一些窗口都已经不在了。

3.重点,调用我们的explorer.exe的系统资源管理器,我们直接创建系统资源管理器的快捷键,

  这样的好处在于,无论你在哪里打开这个快捷方式,explorer.exe的路径不会改变(没毛病),就算你用的是双Windows系统,

  你当前打开的系统默认也是C盘,而你的%SystemRoot%也默认指向你的当前系统的根目录,然后我们借助不会变化的系统根目录

  创建调用资源管理器的快捷方式,然后传入需要打开路径的参数即可,具体如下:

  依然拿刚才的"H:\Portable\AllMyNotes Organizer Portable\AllMyNotes.exe"为例

  将快捷方式的目标项改为:%SystemRoot%\explorer.exe "AllMyNotes Organizer Portable\AllMyNotes.exe"
  起始位置项改为:"%SystemRoot%\explorer.exe "AllMyNotes Organizer Portable"" 即可。

  这里需要注意的是:目标项中%SystemRoot%\explorer.exe前后不带引号,但是后面有一个空格,

  后面的"AllMyNotes Organizer Portable\AllMyNotes.exe"是当前快捷键在U盘中的位置到AllMyNotes.exe程序的相对路径," "引号,空格都是英文输入状态下的。  起始位置项的引号总共两对" ",这个快捷方式相对启动程序的位置不能发生改变。  熟悉Windows批处理的都习惯以cmd启动程序,没关系你可以将调用的explorer.exe改为你的cmd,然后以start命令打开即可,不过并不推荐这样做,具体原因不做陈述。一个小问题我已经阐述了半天了。注:之所以写的那么多是因为介绍原理,方便不了解的同学学习参考,不是为大神和拿来主义的同学准备的,就到这里了,其他系统下的方式类似,感兴趣的自己写吧。

U盘中的快捷方式解析的更多相关文章

  1. VC++实现解析快捷方式

    VC++实现解析快捷方式: http://blog.csdn.net/mydreamremindme/article/details/9826745 

  2. U盘中病毒无法更改U盘隐藏属性,文件变成快捷方式

    问题:U盘中病毒了文件都变成快捷方式了,文件被隐藏:隐藏属性无法修改 解决方法: 1.首先给U盘杀毒[如360杀毒] 2.修改U盘隐藏属性:如下图 经过此步骤被隐藏的文件可以被显示出来了.但是U盘里的 ...

  3. Ubuntu启动器快捷方式文件解析

    快捷方式名称 app_name.desktop 路径: /usr/share/applications/app_name.desktop # 简洁快捷方式格式 [Desktop Entry] Name ...

  4. Java 解析 lnk 快捷方式文件的方法(转)

    package file.extendsion; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.F ...

  5. Kafka设计解析(二)- Kafka High Availability (上)

    本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/04/24/KafkaColumn2 摘要 Kafka在0.8以前的版本中,并不提供High Av ...

  6. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q139-Q141)

    Question 139You create a SharePoint solution that contains two Features named Feature1 and Feature2. ...

  7. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q136-Q138)

    Question 136You need to create a custom content type and specify the content type ID.What should you ...

  8. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q133-Q135)

    Question 133You create a Web Part that updates a list.You need to ensure that users can use the Web ...

  9. sphinx 配置文件全解析

    sphinx的配置文件是在配置的时候最容易出错的了: 我们先要明白几个概念: source:数据源,数据是从什么地方来的. index:索引,当有数据源之后,从数据源处构建索引.索引实际上就是相当于一 ...

随机推荐

  1. 14.Git分支-rebase有趣的例子、变基带来的问题及解决方案

    1.有趣的变基例子 如下图所示,你创建了一个特性分支server,然后进行了一些提交(C3和C4),然后又从C3上创建了特性分支client,提交了C8和C9,最后你又回到了server,提交了C10 ...

  2. java线程阻塞唤醒的四种方式

    java在多线程情况下,经常会使用到线程的阻塞与唤醒,这里就为大家简单介绍一下以下几种阻塞/唤醒方式与区别,不做详细的介绍与代码分析 suspend与resume Java废弃 suspend() 去 ...

  3. Python内置函数(56)——set

    英文文档: class set([iterable]) Return a new set object, optionally with elements taken from iterable. s ...

  4. 理解JavaScript的临时包装对象

    Javascript语言中的对象和基础类型string.number.boolean都可以使用"."符号访问属性和方法,但是本质上只有对象才可以使用".",那么 ...

  5. 【jQuery】(1)---初次接触Jquery

    1.浅理解Jquery:jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站提供AJAX交互. 2.D ...

  6. linux-php5.6-安装sftp扩展

    一. 更新gc库,添加libssh2库 yum -y install libstdc libgomp cpp gcc libgfortran libssh2 libssh2-devel gcc-gfo ...

  7. Vue生命周期详解

    Vue所有的生命周期钩子自动绑定在this上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法.这是因为箭头函数绑定了父上下文,因此this与你期 ...

  8. phpStrom映射代码

  9. Jexus~Linux环境下的部署

    Jexus 即 Jexus Web Server,简称JWS,是Linux平台上的一款ASP.NET WEB服务器,是 Linux.Unix.FreeBSD 等非Windows系统架设 ASP.NET ...

  10. Asp.Net SignalR 集线器不使用代理的实现

    不使用生成代理JS的实现 可能有同学会觉得使用集线器很麻烦,要么引入虚拟目录,要么在生成期间生成js文件,再引入js文件进行开发.难道就没有比较清爽的方式吗?这个当然是有的,先不要(。・∀・)ノ゙嗨皮 ...