症状回放:

最近安装一个Delphi的控件,结果,在安装之后启动Delphi时出现了找不到相关文件的错误。一开始以为是Delphi内的Library路径没有添加,查看,一切正常。再次启动Delphi,提示说将xxx路径插入到PATH环境变量中失败,原因是PATH变量超出长度限制。
查找根源:
根据Delphi的提示,打开环境变量设置窗口,发现PATH变量确实不短(安装了很多开发工具,很多都需要设置环境变量),由于那个控件存在独立运行环境,需要写入系统PATH环境变量。但偏偏这个控件的名字又长的要命。先前有同学告诉我,PATH太长可以使用别名来解决,即创建其它名称的环境变量,并在PATH中使用两个“%”来引用,于是将一部分PATH路径拿出来,新建了一个环境变量并在PATH中引用。
再启动Delphi,咦?另一个文件又找不到了。反复检查发现,刚刚建立的环境变量已经起作用,但另外的路径又丢失了。于是打开CMD控制台,输入PATH,才发现,PATH变量的值已经被截断,原来那个使用别名的方法只是治标不治本。单条PATH变量可以插入了,变量值的长度限制还是存在。难道,非要我把每个程序都安装到短文件路径中?
偏方医治:
当我无奈中想到重装程序到短文件路径时,突然拉亮了另一盏灯。对,DOS8.3格式的短文件名!(哈哈,当时我叫出来的第一句就是,你太有才了…)。所谓DOS8.3格式短文件名就是文件或目录名分8字节主文件名和一个点加3字节的扩展名,在非DOS时代的系统,虽然文件名可以超出这个限制,但仍然可以使用该规则来操作文件名,即使用我们经常见到的“~n”方式。
那么,既然很多文件夹名称都那样的长(比如MS SQLSERVER的Microsoft SQL Server文件夹),那使用DOS8.3格式的短文件名来压缩路径,不就可以起到缩短PATH路径的作用了?
但是,我们又如何获取一个文件或目录的短文件名呢?其实系统已经给我们提供了这个工具,很简单,在CMD控制台中运行 dir /n /x,那么当前目录下的文件名就以长/短两种方式显示出来,接下来就不用我说了吧…
后记:
现在需要PATH环境变量的程序越来越多,PATH的空间也越来越小,真不知道此问题要何时才能解决。刚刚我在Microsoft的网站上找到了一个关于PATH长度限制补丁的说明,但由于整篇指东言西的描述让人匪夷所思,大概是有一个可以把PATH扩展到2046字节的补丁已经发出来,可是始终没找到下载地址。本文叙述的方法也仅仅是治标不治本,但在不限制长度PATH环境变量出现之前,其不失为一种这种方法。

环境变量PATH超长问题[转]的更多相关文章

  1. 配置JDK时环境变量path和JAVA_HOME的作用

    1.PATH环境变量.作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.需要把jdk安装目录下的bin目录增 ...

  2. Linux系统下修改环境变量PATH路径的三种方法

    这里介绍Linux的知识,比如把/etc/apache/bin目录添加到PATH中有三种方法,看完之后你将学会Linux系统下如何修改环境变量PATH路径,需要的朋友可以参考下 电脑中必不可少的就是操 ...

  3. Linux 环境变量 $PATH

    我们知道查阅文件属性的指令 ls 完整文件名为:/bin/ls(这是绝对路径),那为什么可以在任何地方执行/bin/ls 这个指令呢?  为什么在任何目录下输入 ls 就一定可以显示出一些讯息而不会说 ...

  4. win7 64位系统装oracle11 提示环境变量path 值超过1023字符

    win7 64位系统装oracle10 提示环境变量path 值超过1023字符 1.提示环境变量path 值超过1023字符. 方案: 1.oracle安装文件,右键属性--设置兼容性--兼容XP ...

  5. Java环境变量PATH和CLASSPATH

    Java开发中常用到环境变量的配置,下面简单介绍下Java中经常配置的环境变量:PATH和CLASSPATH. 1.PATH环境变量 1.1 作用简介 安装完JDK(Java Development ...

  6. 转载:(Mac)在bash和zsh配置环境变量path的几种方法

    参考文献 老习惯,列出本文参考或引用或转载的文档和博客,致以崇高的敬意,感兴趣的可以去看看 1.http://postgresapp.com/ 2.http://postgresapp.com/doc ...

  7. 安装oracle环境变量path的值大于1023的解决办法

    介绍解决安装oracle安装问题 方法/步骤     安装oracle 10g时遇到环境变量path的值超过1023字符,无法设置该值,如图: ‍ 安装oracle 10g时遇到环境变量path的值超 ...

  8. Ubuntu Linux 环境变量PATH设置

    前俩天编译linux下rar解压软件的时候说找不到  /usr/local/linux 路径,在设定path变量的时候,忽然就想看看,path最原始的变量值是多少....(在环境变量文件中保存.... ...

  9. Linux中的环境变量PATH

    一.介绍 在讲环境变量之前,先介绍一下命令which,它用于查找某个命令的绝对路径,示例如下: 在上面的示例中,用which查到rm命令的绝对路径为/usr/bin/rm. 那么问题来了:为什么我们使 ...

随机推荐

  1. POJ_1862 Stripies 【贪心】

    一.题面 POJ1862 二.分析 反省一下,自己英语水平着实不行,该题其实就是问若给出若干个这种生物,根据这种体重变换方式,最终合并成一个后,体重最少是多少.根据公式 $m = 2\sqrt{m_{ ...

  2. 破解mysql数据库的密码

    发现的1小问题 语句打错以后应该退出本语句,再继续打新语句.也可以打\c,退出本语句. 如何破解数据库的密码: 1:通过任务管理器或者服务管理,关掉mysqld(服务进程) 2:通过命令行+特殊参数开 ...

  3. jstl 遍历数据

    1   导入 jstl  的  jar 包 2. 页面中添加 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/ ...

  4. Robot Framework变量的使用技巧

    1.变量的使用 变量可以在命令行中设置,个别变量设置使用--variable (-v)选项,变量文件的选择使用--variablefile (-V)选项.通过命令行设置的变量是全局变量,对其所有执行的 ...

  5. cmake指令详解

    所需文件名:CmakeLists.txt,在需要操作的每个目录下都需要 PROJECT(工程名字)     这条指令会自动创建两个变量: <projectname>_BINARY_DIR( ...

  6. ali代码风格

    如下: <?xml version="1.0" encoding="UTF-8" standalone="no"?><pr ...

  7. SpringBoot---开发的热部署

    1.模板的热部署 在SpringBoot中,模板引擎的页面默认是开启缓存的: 如果修改了页面的内容,则刷新不到修改后的页面: 可以在application.properties中关闭模板引擎的缓存: ...

  8. (转)创建DB2实例时出错,请大家帮忙解决

    创建DB2实例时出错,请大家帮忙解决 原文:http://bbs.chinaunix.net/thread-3601748-1-1.html 运行:$DB2DIR/instance/db2icrt   ...

  9. java io 学习笔记(三) 字符流读写

    1.字符流读取 字符流读取的所有类都是从Reader这个超类继承的,都是用于读取字符的,这些类分别是InputSteamReader(从字符流读取).FileReader(继承与InputStream ...

  10. CSS3实现鼠标悬停扩展效果

    我们在做导航标签的时候,有时会出现空间过于拥挤需要隐藏部分内容的情况,所以在这里我自己写了一个鼠标悬停显示扩展内容的效果,如下图所示. 总的来说效果还是比较好实现,但是比较头疼的是三角部分使用了伪元素 ...