Cmd 出现错误消息的原因是什么;系统找不到指定的路径";?
我在文件夹Cmd 出现错误消息的原因是什么;系统找不到指定的路径";?,cmd,directory,system32,Cmd,Directory,System32,我在文件夹system32中运行了文件夹run。当我在Total Commander中运行cmd时,打开一个命令提示符窗口,将C:\Users\admin作为当前目录,并希望进入该文件夹,将输出以下错误消息: 系统找不到指定的路径 当我直接在文件夹run中打开cmd时,它工作得非常好。为什么? 在C:\Windows\System32\run中打开命令提示窗口: C:\Windows\System32\run>cd.. C:\Windows\System32>cd run C:\
system32
中运行了文件夹run
。当我在Total Commander中运行cmd
时,打开一个命令提示符窗口,将C:\Users\admin
作为当前目录,并希望进入该文件夹,将输出以下错误消息:
系统找不到指定的路径
当我直接在文件夹run
中打开cmd
时,它工作得非常好。为什么?
在C:\Windows\System32\run
中打开命令提示窗口:
C:\Windows\System32\run>cd..
C:\Windows\System32>cd run
C:\Windows\System32\run>
仅运行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.
你只需要:
步骤1:键入cd,返回C:\的主目录。。(2次)
步骤2:它现在出现C:\>
步骤3:键入dir Windows\System32\run
仅此而已,它在目标文件夹中显示完整的文件和文件夹详细信息
详细信息:我使用了
Windows\System32\com
文件夹作为示例,您应该键入自己的文件夹名称等Windows\System32\run
在Windows x64上不仅有1个%SystemRoot%\System32
。有两个这样的目录
真正的%SystemRoot%\System32
目录适用于64位应用程序。此目录包含64位cmd.exe
但是对于32位应用程序也有%SystemRoot%\SysWOW64
。如果32位应用程序访问%SystemRoot%\System32
,则使用此目录。它包含一个32位的cmd.exe
32位应用程序可以使用path中的别名%SystemRoot%\Sysnative
访问64位应用程序的%SystemRoot%\System32
有关详细信息,请参阅有关的Microsoft文档
因此,为64位应用程序在%SystemRoot%\System32
中创建了子目录run
,为32位应用程序运行了32位cmd
,该目录不存在,因为在%SystemRoot%\SysWOW64
中没有子目录run
,而32位应用程序的%SystemRoot%\System32
cmd.exe
或子目录run
是在%SystemRoot%\System32
中为32位应用程序创建的,运行64位cmd
时,此目录不存在,因为%SystemRoot%\System32
中没有子目录run
,因为此子目录仅存在于%SystemRoot%\SysWOW64
如果64位应用程序的子目录run
位于%SystemRoot%\System32
中,则可以在批处理文件的顶部使用以下代码:
@echo off
set "SystemPath=%SystemRoot%\System32"
if not "%ProgramFiles(x86)%" == "" if exist %SystemRoot%\Sysnative\* set "SystemPath=%SystemRoot%\Sysnative"
必须使用批处理文件中的%SystemPath%
执行System32\run
目录中的每个控制台应用程序,例如%SystemPath%\run\YourApp.exe
它是如何工作的
Windows x86上没有环境变量ProgramFiles(x86),因此实际上只有顶部定义的一个%SystemRoot%\System32
但是在Windows x64上定义了一个值为的环境变量ProgramFiles(x86)。因此,如果%SystemRoot%\Sysnative
中存在文件,则在Windows x64上会额外检查该文件。在这种情况下,批处理文件当前由32位cmd.exe
处理,只有在这种情况下才需要使用%SystemRoot%\Sysnative
。否则也可以在Windows x64上使用%SystemRoot%\System32
,因为当批处理文件由64位cmd.exe
处理时,这是包含64位控制台应用程序的目录(以及子目录run
)
注意:
%SystemRoot%\Sysnative
不是目录!无法将cd
复制到%SystemRoot%\Sysnative
或使用如果存在%SystemRoot%\Sysnative
或如果存在%SystemRoot%\Sysnative\
。它是一个仅适用于32位可执行文件的特殊别名,因此有必要使用如果存在%SystemRoot%\Sysnative\cmd.exe
或更一般的如果存在%SystemRoot%\Sysnative\*
,检查此路径上是否存在一个或多个文件。以下内容对我有效:
regedit
并点击Enter
)HKEY\u CURRENT\u USER\Software\Microsoft\Command Processor\AutoRun
并清除值HKEY\U LOCAL\U MACHINE\Software\Microsoft\Command Processor\AutoRun
这使我免于巨大的痛苦:)该死。。。这是一个伟大的观察。。。万分感谢!!