症状回放:

最近安装一个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. 基于 Pymsql 数据库连接池

    helper.py import pymysql from settings import Config def connect(): conn = Config.POOL.connection() ...

  2. 【字典树】【树】【二进制】bzoj1954/POJ3764The xor-longest Path 题解

        建立字典树是异或的一种处理方法. Description In an edge-weighted tree, the xor-length of a path p is defined as ...

  3. 二分查找-数组实现(小trick)

    template<typename T> int binarySearch(T arr[], int n, T target){ , r = n-; //在[l...r]范围内寻找targ ...

  4. HDU - 1525 博弈 暴力分析

    先来看看比较显然的几个局面 (a,0) 先手必败 (a,a) 先手必胜 (a,ak) 先手必胜 (a,ak+r),k>1 先手必胜,因为先手有主动权把(a,r)让给后手或留给自己 对于开局(a, ...

  5. web 导出数据到 exls 中

    // 文件下载:导出excel表 @RequestMapping(value = "/exportExcel", method = {RequestMethod.GET}) @Re ...

  6. 尺取法 javascript算法

    给定长度为n的数列整数a0,a1……an-1 以及整数S.求出总和不小于S的连续子序列的长度的最小值.如果解不存在,则输出0. 输入 n=10 S=15 a=[5,1,3,5,10,7,4,9,2,8 ...

  7. ics httpDELETE 时增加 content,length 特别需求

    unit: OverbyteIcsHttpProt.pasprocedure THttpCli.SendRequest(const Method, Version: String); var Head ...

  8. keepalived heartbeat lvs haproxy

    一, keeplived @ 01,keeplived 是什么? Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三.第四层.第五层交 ...

  9. 解决Input number 框能够能够输入eeeeee 的问题

    onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" 在input  type="n ...

  10. (转)python编写登录接口

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://506554897.blog.51cto.com/2823970/1907262 ...