【问题标题】:an issue for "echo %temp%" in cmd.exe [closed]cmd.exe 中“echo %temp%”的问题[关闭]
【发布时间】:2013-07-02 08:58:36
【问题描述】:

我遇到了一个奇怪的问题,当我在 CMD.exe 中执行以下命令时,会在 diff WKS 中得到不同的结果。所有WKS都是windows-xp sp3。

c:\> echo %temp%

一个是:C:\DOCUME~1\HWU\LOCALS~1\Temp
另一个是:C:\Documents and Settings\HWU\LOCALS~1\Temp

我知道,两个结果是同一个位置,但是第二个会阻塞我们的一些批处理文件,我不能修改批处理文件。

那么我怎样才能修改一些设置让结果看起来像第一个呢?

谁能给点建议?

非常感谢!!!

【问题讨论】:

  • 我认为,因为第二个里面有空格,所以你需要用“”包围路径,比如“C:\Documents and Settings\HWU\LOCALS~1\Temp”
  • 正确的建议是:修复你的脚本。他们应该在包含自年龄以来的路径的变量周围加上双引号。上个世纪引入了长文件名。
  • @user2511414 是的,如果我用"",应该没问题,但是我不能修改脚本。
  • @AnsgarWiechers 我不能修改脚本,因为*.bat文件在服务器的共享文件夹中,会直接执行。

标签: cmd windows-xp echo


【解决方案1】:

您需要为相关主机上的所有用户配置文件手动调整 %TEMP% 变量。

完成此操作后,检查该主机上注册表项[HKLM\SYSTEM\CurrentControlSet\Control\FileSystem]NtfsDisable8dot3NameCreation 的值。将其更改为 0,以防它设置为 1(需要重新启动)。这并不能修复现有的 %TEMP% 变量(这些变量在创建配置文件后是静态的),但它会阻止在 %TEMP% 变量中使用非 8.3 路径创建未来的配置文件。

不过,我还是强烈建议您修复脚本。这是解决问题的根本原因。

【讨论】:

  • NtfsDisable8dot3NameCreation 在所有 WKS 中为 0。但是有些 WKS 没有通过 dir /x 检查 dos 8.3 短名称。我不知道为什么。而且我无法使用“fsutil file setshortname xxx yyy”添加短名称,返回“拒绝访问”,所以我必须从 USB 密钥启动 WinPE,并设置短名称。似乎可行。
猜你喜欢
  • 1970-01-01
  • 2010-09-06
  • 2011-05-16
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 2022-11-15
  • 1970-01-01
  • 2017-11-06
相关资源
最近更新 更多