首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么系统会将TEMP环境变量转换为一个短文件名?

细心的你,可能会发现这么个情况。

当通过系统的控制面板设置环境变量时,TEMP和TMP这两个环境变量被悄悄地转换成了它们的短文件名版本(如果可以转换的话)。

我们不禁要问了,这是为什么?

聪明的你,也一定猜到了:为了兼容性。

对于大部分的批处理文件(.BAT文件)来说,它们会假设 %TEMP% 和 %TMP% 这两个环境变量不会包含内部的空格字符。(可能其他的一些应用程序也会做出这样的假设,但是一般批处理脚本中特别容易出现这样的问题。)

上面我也提到一个所谓的”如果可以转换的话”,因为你可以禁止系统自动生成短文件名,在这种情况下,环境变量指向的路径不会有对应的短文件名,从而保持它原本的长文件名格式。

如果你更加大胆一些,将TEMP/TMP环境变量设置为一个包含空格且没有对应短文件名的目录路径,则你会发现,系统的有些部分不能正常工作了。请不要怪我没提醒你哦。

总结

我打开了我的Win10,并没有看到文中所说的短文件名的情况。

可能是因为那些古老的操作系统已经随大江东去了吧。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。

本文来自:《Why does the system convert TEMP to a short file name?》

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220214A02J7H00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券