Dlaczego funkcja FIND w systemie Windows 7 wyświetla błąd „Odmowa dostępu”? [Zamknięte]

10

Mam konto administratora na komputerze z systemem Windows 7 x64. To nie jest konto administratora, konto jest po prostu członkiem grupy administratorów.

Instalacja jest domyślna. Gdy użytkownik otworzy wiersz polecenia, znajdzie się w katalogu użytkownika% HOMEPATH%, w którym znajdziesz różne katalogi, takie jak folder Dokumenty. Jeśli użytkownik użyje następującej komendy FIND (Windows) FIND, wystąpi błąd „Odmowa dostępu”:

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

Używanie run lub kliknięcie wiersza polecenia prawym przyciskiem myszy, aby uruchomić go, ponieważ administrator nie zmienia tego zachowania; cmd.exe na poziomie administratora nadal daje mi ten sam błąd. Zmiana ścieżki do dowolnego innego katalogu powoduje ten sam błąd.

Moje pytanie brzmi zatem: w jaki sposób należy używać poleceń ZNAJDŹ (i ewentualnie innych)? Jakie prawa są potrzebne?


źródło
Czy można przenieść te pytania na administratora? Jest to jedyne trafne dopasowanie podczas wyszukiwania tego problemu i zasługuje na zwięzłą odpowiedź.
not2savvy

Odpowiedzi:

13

Próbujesz wykonać find w katalogu. Działa tylko na plikach. Spróbuj tego:

FIND /I "My String" C:\Users\Rann\Documents\*
Wstrzymano do odwołania.
źródło
Dobrze! Musisz więc wcześniej wiedzieć, w którym folderze znajduje się plik lub pliki, aby pomyślnie użyć polecenia Znajdź, aby znaleźć szukany ciąg tekstowy. Nie rozumie rekurencji. Utraciła tę zdolność gdzieś, po drodze, podczas „rozwoju”. Z tego powodu możesz równie dobrze cdprzejść do katalogu, w którym znajduje się plik, i problem, find /i "my string" *który przeszuka wszystkie pliki w tym folderze w poszukiwaniu „mojego ciągu”.
Samir,
4

To prawda, wydaje się, że Find już nie powraca. Ale hej, nie martw się, możemy tutaj skorzystać z pomocy w skryptowaniu. Oto jeden, który próbowałem i działa:

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

Spowoduje to przeszukanie wszystkich podfolderów.

Może to wytworzyć kilka linii wyników. Dlatego łatwiej jest skierować dane wyjściowe do pliku:

dla / R% G w (*) do (znajdź „String_I_am_Looking_For”% G) >> output.txt

Następnie wyszukaj szukany ciąg w tym pliku (możesz użyć kontroli wizualnej lub Ctrl + F, aby znaleźć tutaj).

Shivesh Suman
źródło
Trochę niewygodne jest znajdowanie faktycznych dopasowań wśród wszystkich śmieci wyprowadzanych przez polecenie „znajdź”, ale to załatwia dziwne wyszukiwanie!
John Rix,
1
Zredagowałem polecenie, aby wysłać dane wyjściowe do pliku tekstowego - być może łatwiej jest w ten sposób użyć uzyskanego wyniku.
shivesh suman
3

To nie jest w porządku. Funkcja FIND służyła do przeszukiwania wszystkich podkatalogów, ale nie jest już „możliwa” z powodu bezpieczeństwa Win 7. Musisz poprawnie zamontować system plików w trybie offline, aby poprawnie używać ZNAJDŹ.

Creaper
źródło
Możesz dodać system Windows Vista do listy wersji systemu Windows, które nie mają już polecenia Znajdź, które obsługuje rekurencję. W tej chwili korzystam z Vista Ultimate, x64 i widzę ten sam problem.
Samir
3
może zamiast tego użyj findstr
aeroson
@eroson: To jest odpowiedź - Zamierzasz to opublikować?
Pieter Geerkens
@PieterGeerkens Wiem, że to dla mnie zadziałało, ale nie wiem dlaczego, zachęcamy do opublikowania go.
aeroson
-2

To jest Babar Tutaj, pobieram opłaty za to, ale teraz jest bezpłatne dla przedstawicieli.

Pozwól, że powiem ci, jak ominiesz plik lub folder odmowy dostępu przez cmd:

Cel: musisz znać nazwę folderu i dysku, do którego chcesz uzyskać dostęp.

Jeśli zastosujesz to: Powiedzmy, że twój folder znajduje się na Dysku D, a nazwa to babar.

C: \ users \ system32> cd / dd: naciśnij enter

D:> dla% g w (babar) do (find / n / i "Nazwa folderu:" "% g") naciśnij enter

D:> DOSTĘP ZABLOKOWANY - Plik nie znaleziony

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

Stanie się tak, jeśli spróbujesz wykonać powyższe polecenie w CMD.EXE

Teraz zobacz, jak sprawię, że ominiesz plik błędu ACCESS DENIED.

C: \ users \ system32> cd / dd:

D:> for / r% g in (babar) do (find / n / i "Nazwa folderu:% g") naciśnij enter

D:> (find / n / i "Nazwa folderu: D: \ babar")

i naciśnij „ctrl C przyciski”, aby anulować i wyjść z powłoki CMD

Mam nadzieję, że to wystarczy, aby zrozumieć, ile witryn nie wykazuje błędów podczas wyjaśniania treści.

Dziękuję Ci.

Ben999
źródło