2015-11-10 6 views
3

У меня есть папка 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> 

окна командной строки на просто работает 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

Вы используете один и тот же контекст пользователя для всех попыток? когда в 'C: \ WINDOWS \ system32', введите' dir/A: DRSH run'; каков результат? что показано, когда вы вводите 'attrib run' там? – aschipfl

+0

Вот изображение: http://i.imgur.com/0QWH86S.jpg –

+0

Что произойдет, если вы добавите '.' в каталог, например' cd run.'? – aschipfl

ответ

2

Существует не только 1 %windir%\System32 на Windows x64. Есть 2 таких каталога.

Настоящий каталог %windir%\System32 предназначен для 64-разрядных приложений. Этот каталог содержит 64-разрядный cmd.exe.

Но есть также %windir%\SysWOW64 для 32-битных приложений. Этот каталог используется, если 32-разрядное приложение обращается к %windir%\System32. Он содержит 32-битный cmd.exe.

32-разрядные приложения могут обращаться к %windir%\System32 для 64-разрядных приложений с использованием %windir%\Sysnative в пути.

Подробнее см. На странице Microsoft о File System Redirector.

Так что я думаю, что вы создали подкаталог run в %windir%\System32 для 64-разрядных приложений и запустить 32-разрядную cmd, для которого этот каталог не существует, как не существует подкаталог run в %windir%\SysWOW64 который %windir%\System32 для 32-разрядных cmd.exe.

Или вы создали подкаталог run в %windir%\System32 для 32-битных приложений и запускать 64-битные cmd, для которого этот каталог не существует, как не существует подкаталог run в %windir%\System32, потому что этот подкаталог существует только в %windir%\SysWOW64.

Вы можете использовать следующие в верхней части вашего пакетного файла в случае подкаталога run в %windir%\System32 для 64-разрядных приложений:

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

Далее вам нужно вызвать каждое консольное приложение в System32\run директории с %SystemPath% в вашем командный файл, например %SystemPath%\run\YourApp.exe.

Как это работает?

В Windows x86 нет переменной окружения ProgramFiles (x86) и поэтому на самом деле существует только 1 %windir%\System32, как определено выше.

В Windows x64 есть переменная окружения ProgramFiles (x86) со значением. В Windows x64 дополнительно проверяется наличие файлов в %windir%\Sysnative. В этом случае командный файл выполняется с 32-битным cmd.exe, и только в этом случае необходимо использовать %windir%\Sysnative. В противном случае %windir%\System32 может использоваться также и для Windows x64, как при запуске командного файла с 64-битным cmd.exe, это каталог, содержащий 64-битные консольные приложения (и ваш подкаталог run).

Примечание: %windir%\Sysnative не является каталогом! Нельзя использовать cd до %windir%\Sysnative или использовать if exist %windir%\Sysnative

0

Вам просто нужно:

Шаг 1: Идите домой каталог C: \ с набивкой cd .. (2 раза)

Шаг 2: Похоже, в настоящее время C:\>

Шаг 3: Тип dir Windows\System32\run

Вот и все, это показывает полные файлы & детали папки внутри целевой папки.

enter image description here

Деталь: Я использовал Windows\System32\com папки в качестве примера, вы должны ввести свое имя папки и т.д. Windows\System32\run

+0

Не работает :(Вот изображение: http://i.imgur.com/ScuX00O.jpg –

+0

проверить, что папка запуска существует, или она может быть удалена: D –

+0

Нет, он не существует. Изображение: http: //i.imgur.com/v0FA7qL.jpg –