我在文件夹run
中有文件夹system32
。当我从Total Commander中运行cmd
打开一个命令提示符窗口,其中C:\Users\admin
作为当前目录并想要进入该文件夹时,会输出以下错误消息:
系统无法找到指定的路径。
当我直接在文件夹cmd
中打开run
时,它的效果非常好。为什么呢?
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.
答案 0 :(得分:8)
以下内容对我有用:
Registry Editor
(按Windows键,键入regedit
,然后按Enter
)。HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
并清除值。HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
。答案 1 :(得分:5)
Windows x64上不仅有 %SystemRoot%\System32
。有 2 这样的目录。
真正的%SystemRoot%\System32
目录适用于64位应用程序。该目录包含64位cmd.exe
。
但是32位应用程序也有%SystemRoot%\SysWOW64
。如果32位应用程序访问%SystemRoot%\System32
,则使用此目录。它包含一个32位cmd.exe
。
32位应用程序可以通过路径中的%SystemRoot%\System32
访问64位应用程序%SystemRoot%\Sysnative
。
有关详细信息,请参阅有关File System Redirector的Microsoft文档。
所以我认为你已经在run
中为64位应用程序创建了子目录%SystemRoot%\System32
并运行了32位cmd
,因为没有子目录{ {1}} {1}} run
代表32位%SystemRoot%\SysWOW64
。
或者您已在%SystemRoot%\System32
中为32位应用程序创建子目录cmd.exe
并运行此目录不存在的64位run
,因为没有子目录{{1在%SystemRoot%\System32
中,因为此子目录仅存在于cmd
。
如果子目录run
位于%SystemRoot%\System32
的64位应用程序中,您可以在批处理文件的顶部使用以下内容:
%SystemRoot%\SysWOW64
接下来,您需要在批处理文件中使用run
调用%SystemRoot%\System32
目录中的每个控制台应用程序,例如@echo off
set "SystemPath=%SystemRoot%\System32"
if not "%ProgramFiles(x86)%"=="" (
if exist %SystemRoot%\Sysnative\* set "SystemPath=%SystemRoot%\Sysnative"
)
。
它如何运作?
在Windows x86上没有环境变量 ProgramFiles(x86),因此在顶部定义的实际上只有1 System32\run
。
在Windows x64上,存在带有值的环境变量 ProgramFiles(x86)。在Windows x64上,还会检查%SystemPath%
中是否有文件。在这种情况下,批处理文件使用32位%SystemPath%\run\YourApp.exe
执行,只有在这种情况下才需要使用%SystemRoot%\System32
。否则,{x 1}也可以在Windows x64上使用,就像使用64位%SystemRoot%\Sysnative
启动批处理文件一样,这是包含64位控制台应用程序的目录(以及您的子目录cmd.exe
)。
注意:%SystemRoot%\Sysnative
不是目录!无法%SystemRoot%\System32
到cmd.exe
或使用run
答案 2 :(得分:0)