gpt4 book ai didi

cmd - 错误消息“系统找不到指定的路径”的原因是什么?

转载 作者:行者123 更新时间:2023-12-04 01:09:10 50 4
gpt4 key购买 nike

我在文件夹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.

最佳答案

Windows x64上不仅只有1个%SystemRoot%\System32。有2个这样的目录。
真实的%SystemRoot%\System32目录用于64位应用程序。该目录包含一个64位的cmd.exe
但是对于32位应用程序也有%SystemRoot%\SysWOW64。如果32位应用程序访问%SystemRoot%\System32,则使用此目录。它包含一个32位cmd.exe
通过在路径中使用别名%SystemRoot%\System32,32位应用程序可以访问64位应用程序的%SystemRoot%\Sysnative
有关更多详细信息,请参见有关File System Redirector的Microsoft文档。
因此,在run中为64位应用程序创建了子目录%SystemRoot%\System32,并且运行了32位cmd,该目录不存在,因为run中没有子目录%SystemRoot%\SysWOW64,该子目录为 对于32位 %SystemRoot%\System32或在 cmd.exe中为32位应用程序创建的子目录 run且由于该目录中没有子目录 %SystemRoot%\System32而运行不存在该目录的64位 cmd run,因为此子目录仅存在于 %SystemRoot%\System32中。
对于64位应用程序,如果子目录 %SystemRoot%\SysWOW64位于 run中,则可以在批处理文件的顶部使用以下代码:

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

%SystemRoot%\System32目录中的每个控制台应用程序都必须在批处理文件中使用 System32\run执行,例如 %SystemPath%
这个怎么运作?
Windows x86上没有环境变量ProgramFiles(x86),因此实际上只有一个 %SystemPath%\run\YourApp.exe定义在顶部。
但是在Windows x64上定义了环境变量ProgramFiles(x86)的值。因此,还要在Windows x64上检查 %SystemRoot%\System32中是否有文件。在这种情况下,批处理文件当前由32位 %SystemRoot%\Sysnative处理,并且仅在这种情况下才需要使用 cmd.exe。否则 %SystemRoot%\Sysnative也可以在Windows x64上使用,就像批处理文件由64位 %SystemRoot%\System32处理时一样,这是包含64位控制台应用程序(和子目录 cmd.exe)的目录。
注意: run不是目录! %SystemRoot%\Sysnativecd或使用 %SystemRoot%\Sysnativeif exist %SystemRoot%\Sysnative是不可能的。它是仅用于32位可执行文件的特殊别名,因此有必要通过使用 if exist %SystemRoot%\Sysnative\或更通用的 if exist %SystemRoot%\Sysnative\cmd.exe来检查使用此路径时是否存在一个或多个文件。

关于cmd - 错误消息“系统找不到指定的路径”的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638281/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com