Главная

Friday, 17 March 2017

Особенность утилиты Where.

Всем привет.

Есть такая полезная утилита where.exe в Windows 7. Она отображает расположение файлов, совпадающих с шаблоном поиска. По умолчанию поиск выполняется в текущем каталоге и в каталогах, указанных в переменной среды PATH.

Параметры:
    /R       Рекурсивный поиск и отображение файлов, соответствующих указанному шаблону, начиная с указанного каталога.

    /Q       Возврат только кода выхода без отображения списка найденных файлов (тихий режим)

    /F       Отображение найденных файлов в кавычках.

    /T       Отображение размера, даты и времени изменения для всех найденных файлов.

    шаблон  
Шаблон поиска для искомых файлов. В шаблоне можно использовать подстановочные знаки * и ?. Также можно задавать конструкции "$пер:шаблон" и "путь:шаблон", где "пер" представляет переменную среды, и поиск осуществляется по путям, указанным в переменной   среды "пер". Эти конструкции не следует использовать с параметром /R. При поиске к шаблону также добавляются расширения из переменной PATHEXT.

     /?      Вывод справки по использованию.

  Примечание. Эта служебная программа возвращает код ошибки 0, если
              поиск был успешным, 1 - если безуспешным, и
              2, если возникли ошибки.

Примеры:
    WHERE /?
    WHERE имя_файла имя_??????.*
    WHERE $windir:*.*
    WHERE /R c:\windows *.exe *.dll *.bat
    WHERE /Q ??.???
    WHERE "c:\windows;c:\windows\system32:*.dll"
    WHERE /F /T *.dll

А теперь сюрприз: если файл в системе присутствует по PATH, но у пользователя от которого выполняют запуск WHERE нет прав на запись (Write) в папку где находится сам файл, то файл не будет найден. Т.е. файл виден (Read), может быть выполнен (Exec), но WHERE его не найдет. Вот так.)

Увидимся.

No comments:

Post a Comment

А что вы думаете по этому поводу?