Ответ 1
from http://www.pcreview.co.uk/forums/thread-1468270.php
@echo off
echo CreateObject("Shell.Application").FindFiles >%temp%\myff.vbs
cscript.exe //Nologo %temp%\myff.vbs
del %temp%\myff.vbs
Я хотел бы создать горячую клавишу для поиска файлов под определенной папкой в Windows XP; Я использую AutoHotkey для создания этого ярлыка.
Проблема в том, что мне нужно знать оператор командной строки для запуска, чтобы открыть стандартный диалог "Найти файлы/папки" Windows. Некоторое время я искал Google и не нашел ни одной страницы, указывающей, как это сделать.
Я предполагаю, что если я знаю оператор командной строки для вызова этой подсказки, это позволит мне передать параметр для той папки, в которую я хочу искать. Я знаю, что вы можете сделать это, щелкнув правой кнопкой мыши на папке в XP, поэтому я предполагаю, что я мог бы сделать это в командной строке...?
from http://www.pcreview.co.uk/forums/thread-1468270.php
@echo off
echo CreateObject("Shell.Application").FindFiles >%temp%\myff.vbs
cscript.exe //Nologo %temp%\myff.vbs
del %temp%\myff.vbs
Это не точный ответ на ваш вопрос, но вы можете использовать Locate32 вместо поиска Windows объект. Он имеет целый набор опций командной строки плюс имеет огромное преимущество в индексированном поиске, что означает, что результаты будут отображаться мгновенно. Это инструмент, с которым я не могу быть в Windows.
Это команда, которую вы выведете для поиска всех index.php
файлов в D:\home
:
locate32.exe -r -p D:\home index.php
где переключатель -r
делает поиск Locate32 немедленно без вмешательства пользователя (без него интерфейс запускается и поля будут заполнены, но вам нужно нажать Enter, чтобы продолжить поиск), а -p D:\home
- путь к поиску.
Используя AutoHotKey, просто назначить приведенную выше команду на комбинацию клавиш.
Существует также полностью основанная на командной строке версия Locate32 в том же пакете, который называется locate.exe
. В нем используются те же индексы, что и Locate32, но поскольку он полностью основан на CLI, его можно использовать на языках сценариев и других инструментах, чтобы использовать преимущества предлагаемого поиска.
F3 или Win + F - это горячая клавиша, которая запустит Find Files. Если вы затем выполните поиск по критериям, которые вы хотите, вы можете сохранить поиск в меню "Файл". Это создает файл .FND. Файл FND можно запустить из командной строки или из горячей клавиши, созданной с помощью autohotkey.
Можно отредактировать файл .FND(двоичный) и изменить то, что он ищет, но я бы избегал этого, если только он не сможет сделать то, что вы хотите. Я попробовал, и он работал нормально.
Из командной строки нет способа заставить Explorer показать панель "Файлы поиска". Но вы можете преодолеть это с помощью VBScript.
Попробуйте это
'ExplorerFind.vbs
Dim objShell
Set objShell = WScript.CreateObject("Shell.Application")
objShell.FindFiles
И скомпилируйте его с помощью cscript/nologo ExplorerFind.vbs
просто выполните эту строку! (WinKey + R, CmdPrompt, Shortcut, ShellExecute, WinExec и т.д.)
search-ms:query=New%20Folder&
Найти все ярлыки на рабочем столе
search-ms:query=*.lnk&crumb=folder:%userprofile%\Desktop&
Найдите текст "exe" в папке "C:\Program Files"
search-ms:query=exe&crumb=location:C:\Program Files&
Другие примеры
search-ms:query=microsoft&
search-ms:query=vacation&subquery=mydepartment.search-ms&
search-ms:query=seattle&crumb=kind:pics&
search-ms:query=seattle&crumb=folder:C:\MyFolder&
ссылка здесь http://msdn.microsoft.com/en-us/library/ff684385.aspx
Попробуйте "Launchy". Для окон и Linux. Удивительный пользователь.
Если вам нужна только горячая клавиша, используйте Win+f
.
Немного непонятно, нужен ли конечный результат открытому диалогу "найти", или если вы просто ищете способ командной строки для поиска в произвольном каталоге. Если у последнего есть FINDSTR (при условии, что вы хотите искать содержимое файлов, а не их имена):
Дополнение к ответу Бен Данлэпа: вы также можете использовать FINDSTR для вывода команды DIR (например, в цикле FOR) Это будет искать имена файлов, а не файлы.
На основании ответа Vitim.us из cmd все, что вам нужно, это
explorer.exe "search-ms:query=*.exe&crumb=location:C:\Program Files&"
Измените местоположение и запрос по мере необходимости
Почему бы вам не попробовать бить F3?:)