Почему FIND в Windows 7 выдает ошибку «Отказано в доступе»? [закрыто]

10

У меня есть учетная запись администратора на компьютере с Windows 7 x64. Это не учетная запись администратора, учетная запись является просто членом группы администраторов.

Установка по умолчанию. Когда пользователь открывает командную строку, она попадает в пользовательский каталог% HOMEPATH%, где вы найдете различные каталоги, например папку «Документы». Если пользователь использует следующую команду (windows) FIND, возникает ошибка «Отказано в доступе»:

FIND /I "My String" C:\Users\Rann\Documents
Access denied - C:\USERS\RANN\DOCUMENTS

Использование runas или щелчок правой кнопкой мыши на командной строке, чтобы запустить его от имени администратора, не меняет это поведение; cmd.exe уровня администратора все еще выдает мне ту же ошибку. Изменение пути к любому другому каталогу дает ту же ошибку.

Мой вопрос таков: как можно использовать команды НАЙТИ (и, возможно, другие)? Какие права нужны?


источник
Можно ли перенести эти вопросы на суперпользователя? Это единственное подходящее совпадение при поиске этой проблемы, и оно заслуживает краткого ответа.
not2savvy

Ответы:

13

Вы пытаетесь выполнить поиск по каталогу. Работает только с файлами. Попробуй это:

FIND /I "My String" C:\Users\Rann\Documents\*
Приостановлено до дальнейшего уведомления.
источник
Правильно! Поэтому вы должны заранее знать, в какой папке находится файл или файлы, чтобы успешно использовать команду «Найти» для поиска искомой текстовой строки. Он не понимает рекурсию. Он потерял эту способность где-то, каким-то образом, в процессе «развития». По этой причине вы можете также cdзайти в каталог, где находится файл, и выполнить find /i "my string" *команду, которая будет искать во всех файлах в этой папке «мою строку».
Самир
4

Это правда, кажется, что Find больше не возвращается. Но не беспокойтесь, мы можем использовать небольшую помощь в написании скриптов. Вот тот, который я попробовал, и он работает:

for /R %G in (*) do (find "String_I_am_Looking_For" %G)

Это будет искать все подпапки.

Это может привести к нескольким строкам вывода. Так что может быть проще направить вывод в файл:

для / R% G в (*) do (найти «String_I_am_Looking_For»% G) >> output.txt

А затем найдите строку поиска в этом файле (вы можете использовать визуальный контроль или Ctrl + F для поиска здесь).

Шивеш Суман
источник
Немного неловко находить фактические совпадения среди всего барахла, которое выводит команда 'find', но это делает трюк для нечетного поиска!
Джон Рикс
1
Я отредактировал команду для отправки вывода в текстовый файл - возможно, проще использовать этот вывод.
Шивеш Суман
3

Это неправильно. Функция FIND используется для поиска во всех подкаталогах, но больше не «может» из-за безопасности Win 7. Вы должны смонтировать файловую систему в автономном режиме, чтобы правильно использовать FIND.

creaper
источник
Вы можете добавить Windows Vista в список версий Windows, в которых больше нет команды Find, которая понимает рекурсию. Я использую Vista Ultimate, x64, и вижу ту же проблему.
Самир
3
возможно, используйте вместо этого findstr
аэрозон
@aeroson: Вот и ответ. Собираетесь ли вы опубликовать это?
Питер Гиркенс
@PieterGeerkens Я знаю, что это сработало для меня, но не знаю почему, не стесняйтесь размещать это.
аэрозон
-2

Это Бабар. Я взимаю плату за это, но теперь это бесплатно ради Репса.

Позвольте мне рассказать вам, как вы можете обойти файл или папку, в которой отказано в доступе, с помощью cmd:

Цель: вы должны знать имя папки и диска, в который вы хотите войти.

Если вы примените это: допустим, ваша папка находится на Drive-D, а имя - babar.

C: \ users \ system32> cd / dd: нажмите ввод

D:> для% g in (babar) do (find / n / i "Имя папки:" "% g") нажмите enter

D:> Доступ запрещен - Файл не найден

:: #######################################

Это произойдет, если вы попробуете эту команду в CMD.EXE

Теперь посмотрите, как я заставлю вас обойти файл ошибок ACCESS DENIED.

C: \ users \ system32> cd / dd:

D:> для / r% g in (babar) сделать (найти / n / i "Имя папки:% g") нажмите ввод

D:> (найти / н / я "Имя папки: D: \ babar")

и нажмите "Ctrl C кнопки", чтобы отменить и выйти из оболочки CMD

Надеюсь, этого будет достаточно, чтобы понять, сколько сайтов не показывают ошибок при объяснении контента.

Спасибо.

Ben999
источник