“一个问题”;回显%temp%”;在cmd.exe中

“一个问题”;回显%temp%”;在cmd.exe中,cmd,windows-xp,echo,Cmd,Windows Xp,Echo,我面临一个奇怪的问题,当我在CMD.exe中执行以下命令时,将在不同的工作中得到不同的结果。所有工作都是windows xp sp3 c:\> echo %temp% 一个是:C:\DOCUME~1\HWU\LOCALS~1\Temp 另一个是:C:\Documents and Settings\HWU\LOCALS~1\Temp 我知道,两个结果是相同的位置,但第二个将阻止我们的一些批处理文件,我不能修改批处理文件 那么我如何修改一些设置,让结果看起来像第一个 有人能给我建议吗 非常

我面临一个奇怪的问题,当我在CMD.exe中执行以下命令时,将在不同的工作中得到不同的结果。所有工作都是windows xp sp3

c:\> echo %temp%
一个是:
C:\DOCUME~1\HWU\LOCALS~1\Temp

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

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

那么我如何修改一些设置,让结果看起来像第一个

有人能给我建议吗


非常感谢

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

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


尽管如此,我还是强烈建议您修复脚本。这是问题根本原因的解决方案。

我认为,因为第二个路径中有空格,所以需要用“”将路径包围起来,如“C:\Documents and Settings\HWU\LOCALS~1\Temp”。正确的建议是:修复脚本。它们应该在包含自古以来的路径的变量周围加上双引号。上个世纪引入了长文件名。@User251414是的,如果我使用“”,应该可以,但我不能修改脚本。@AnsgarWiechers我不能修改脚本,因为*.bat文件在服务器的共享文件夹中,它将直接执行。因此,您可能需要在所有工作中检查此NtfsDisable8dot3NameCreation是否为0。但有些工作没有通过dir/x进行dos 8.3短名称检查。我不知道为什么。我不能使用“fsutil file setshortname xxx yyy”添加shortname,返回“access denied”,因此我必须从USB密钥启动WinPE,并设置shortname。这似乎有效。