РЕДАКТИРОВАТЬ: я должен был добавить, если вы не можете использовать команду WHERE из командной строки, проверьте переменную PATH. (Просто используйте команду "путь".) Убедитесь, что C:\Windows\System32 находится на вашем пути. Вот где находится "where.exe".
Где команда, которую вы ищете! WHERE - это нечто среднее между встроенной в UNIX оболочкой "which" и командой "locate", поскольку она работает как с исполняемыми файлами команд, так и с обычными файлами.
Это также несколько сложнее, чем любой из этих двух, хотя, в общем, простой
WHERE <file>
буду работать.
Она отличается от команды "locate" тем, что не просматривает всю файловую систему. Вместо этого поведение по умолчанию - искать файлы в двух местах:
- Текущий каталог.
- Все каталоги в переменной PATH.
Таким образом, любая команда, которую вы можете запустить непосредственно из командной строки без указания каталога, будет найдена командой WHERE. (Потому что любая подобная команда уже есть в списке переменных PATH.)
Если вы хотите искать только в переменной пути команды, вы можете использовать:
WHERE "$path:<search text>"
Если, с другой стороны, вы хотите найти все копии файла в дереве каталогов, вы можете использовать:
WHERE /R <Top Level Directory> <search text>
Наконец, WHERE найдет команды и любые файлы с расширением из переменной PATHEXT, не включая расширение. Все остальные файлы должны быть указаны точно или с подстановочными знаками.
Возьмем, к примеру, файлы "dxdiag.exe" и "dxdiagn.dll". Обратите внимание на следующую команду и ее вывод:
WHERE /R C:\Windows dxdiag
C:\Windows\System32\dxdiag.exe
C:\Windows\SysWOW64\dxdiag.exe
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiag.exe
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiag.exe
Он успешно возвращает все версии "dxdiag.exe", потому что ".exe" является одним из расширений переменной PATHEXT. (Примечание: "WHERE dxdiag" также сработал бы, потому что C:\Windows\System32 находится в переменной PATH.)
WHERE /R C:\Windows dxdiagn
с другой стороны, не возвращает никакого результата, потому что ".dll" нет в PATHEXT.
В этом случае посмотрите на результат, который дает нам подстановочный знак:
WHERE /R C:\Windows dxdiagn*
C:\Windows\System32\dxdiagn.dll
C:\Windows\System32\en-US\dxdiagn.dll.mui
C:\Windows\SysWOW64\dxdiagn.dll
C:\Windows\SysWOW64\en-US\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_daccd04369b09c70\dxdiagn.dll.mui
C:\Windows\WinSxS\amd64_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_7c8d3f96e7882ec7\dxdiagn.dll
C:\Windows\WinSxS\x86_microsoft-windows-d..iagnostic.resources_31bf3856ad364e35_6.2.9200.16384_en-us_7eae34bfb1532b3a\dxdiagn.dll.mui
C:\Windows\WinSxS\x86_microsoft-windows-d..x-directxdiagnostic_31bf3856ad364e35_6.2.9200.16384_none_206ea4132f2abd91\dxdiagn.dll
Он успешно возвращает все версии dxdiagn.dll.
Для получения дополнительной информации используйте «ГДЕ /?». Надеюсь это поможет!