错误消息"系统无法找到指定的路径"的原因是什么?

Mi1*_*vic 12 directory cmd system32

我在文件夹run中有文件夹system32.当我cmd从Total Commander中打开一个命令提示符窗口C:\Users\admin作为当前目录并想要进入该文件夹时,会输出以下错误消息:

系统找不到指定的路径.

当我cmd直接在文件夹中打开时run,它完美无缺.为什么?

打开的命令提示符窗口C:\Windows\System32\run:

C:\Windows\System32\run>cd..

C:\Windows\System32>cd run

C:\Windows\System32\run>
Run Code Online (Sandbox Code Playgroud)

简单运行命令提示符窗口cmd:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Všetky práva vyhradené.

C:\Users\admin>cd..

C:\Users>cd..

C:\>cd windows

C:\Windows>cd system32

C:\Windows\System32>cd run
Systém nemôže nájst’ zadanú cestu.
Run Code Online (Sandbox Code Playgroud)

ais*_*ib7 14

以下对我有用:

  1. 打开Registry Editor(按windows键,输入regedit并点击Enter)。
  2. 导航到HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun并清除这些值。
  3. 还要检查HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun


Mof*_*ofi 6

不仅1 %SystemRoot%\System32 Windows x64上。有2个这样的目录。

真实%SystemRoot%\System32目录适用于64位应用程序。此目录包含64位cmd.exe

但是也有%SystemRoot%\SysWOW64针对32位应用程序的。如果32位应用程序访问,则使用此目录%SystemRoot%\System32。它包含一个32位cmd.exe

32位应用程序可以%SystemRoot%\System32使用%SystemRoot%\Sysnativein路径访问64位应用程序。

有关更多详细信息,请参阅有关文件系统重定向器的Microsoft文档。

所以,我想你已经创建的子目录run%SystemRoot%\System32的64位应用程序和运行32位cmd的此目录不存在,因为没有子目录run%SystemRoot%\SysWOW64%SystemRoot%\System3232位cmd.exe

或者,您已经run%SystemRoot%\System3232位应用程序中创建了子目录,并运行64位cmd,该目录不存在,因为其中没有子目录run%SystemRoot%\System32因为该子目录仅存在于中%SystemRoot%\SysWOW64

如果子目录run位于%SystemRoot%\System3264位应用程序中,则可以在批处理文件顶部使用以下命令:

@echo off
set "SystemPath=%SystemRoot%\System32"
if not "%ProgramFiles(x86)%"=="" (
    if exist %SystemRoot%\Sysnative\* set "SystemPath=%SystemRoot%\Sysnative"
)
Run Code Online (Sandbox Code Playgroud)

接下来,您需要System32\run使用%SystemPath%批处理文件中的目录调用每个控制台应用程序,例如%SystemPath%\run\YourApp.exe

怎么运行的?

在Windows x86上,没有环境变量ProgramFiles(x86),因此实际上%SystemRoot%\System32顶部只有1个。

在Windows x64上,环境变量ProgramFiles(x86)带有值。在Windows x64上,还要检查中是否有文件%SystemRoot%\Sysnative。在这种情况下,批处理文件以32位执行,cmd.exe仅在这种情况下才%SystemRoot%\Sysnative需要使用。否则,%SystemRoot%\System32也可以在Windows x64上使用,就像使用64位启动批处理文件时一样cmd.exe,这是包含64位控制台应用程序(和您的子目录run)的目录。

注意:%SystemRoot%\Sysnative不是目录!不可能cd%SystemRoot%\Sysnative或使用if exist %SystemRoot%\Sysnative