Perché FIND su Windows 7 genera un errore "Accesso negato"? [chiuso]


10

Ho un account amministratore su una macchina x64 di Windows 7. Non è l'account amministratore, l'account è semplicemente un membro del gruppo amministratori.

L'installazione è predefinita. Quando l'utente apre un prompt dei comandi, finisce nella directory% HOMEPATH% degli utenti, dove troverai varie directory come la cartella Documenti. Se l'utente utilizza il seguente comando FIND (windows), si verifica un errore "Accesso negato":

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

L'uso di runas o il clic con il pulsante destro del mouse sul prompt dei comandi per eseguirlo come amministratore non modifica questo comportamento; un cmd.exe a livello di amministratore mi dà ancora lo stesso errore. La modifica del percorso in qualsiasi altra directory genera lo stesso errore.

La mia domanda è quindi: come si può usare i comandi FIND (e possibilmente altri)? Quali diritti sono necessari?


Queste domande possono essere trasferite al superutente? È l'unica corrispondenza rilevante durante la ricerca di questo problema e merita una risposta concisa.
not2savvy,

Risposte:


13

Stai tentando di eseguire find in una directory. Funziona solo su file. Prova questo:

FIND /I "My String" C:\Users\Rann\Documents\*

Giusto! Quindi devi sapere in anticipo in quale cartella si trovano i file per utilizzare correttamente il comando Trova per trovare la stringa di testo che stai cercando. Non capisce la ricorsione. Ha perso quell'abilità da qualche parte, in qualche modo, lungo la strada, durante lo "sviluppo". Per questo motivo, potresti anche cdaccedere alla directory in cui si trova il file ed emettere un problema find /i "my string" *che cerca "la mia stringa" in tutti i file in quella cartella.
Samir,

4

È vero, sembra che Find non sia più reclutato. Ma hey, non preoccuparti, qui possiamo usare un piccolo aiuto per gli script. Eccone uno che ho provato e funziona:

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

Questo cercherà tutte le sottocartelle.

Ciò può produrre diverse linee di output. Quindi potrebbe essere più semplice indirizzare l'output su un file:

per / R% G in (*) do (trova "String_I_am_Looking_For"% G) >> output.txt

Quindi cerca la stringa di ricerca in questo file (puoi usare l'ispezione visiva o Ctrl + F per trovare qui).


Un po 'imbarazzante individuare le corrispondenze effettive tra tutta la spazzatura emessa dal comando' trova ', ma questo è il trucco per la ricerca dispari!
John Rix,

1
Ho modificato il comando per inviare l'output a un file di testo - forse in questo modo è più semplice utilizzare l'output prodotto.
Shivesh Suman,

3

Questo non è giusto. TROVA era solito cercare in tutte le sottodirectory, ma non "può" più a causa della sicurezza di Win 7. Devi montare il filesystem OFFLINE per usare correttamente FIND.


È possibile aggiungere Windows Vista all'elenco delle versioni di Windows che non dispongono più di un comando Trova che comprenda la ricorsione. Al momento sto eseguendo Vista Ultimate, x64 e sto riscontrando lo stesso problema.
Samir,

3
forse, usa invece
findstr

@aeroson: Questa è la risposta - Hai intenzione di pubblicarlo?
Pieter Geerkens,

@PieterGeerkens So che ha funzionato per me, ma non so perché, sentiti libero di pubblicarlo.
aeroson,

-2

Questo è Babar Qui, addebito commissioni su questo, ma ora è gratuito per motivi di rappresentanti.

Lascia che ti dica Come ignorare il file o la cartella di accesso negato tramite cmd:

Obiettivo: è necessario conoscere il nome della cartella e dell'unità in cui si desidera accedere.

Se lo applichi: diciamo che la tua cartella è in Drive-D e il nome è babar.

C: \ utenti \ sistema32> cd / dd: premere invio

D:> per% g in (babar) do (trova / n / i "Nome cartella:" "% g") premi invio

D:> ACCESS DENIED -File non trovato

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

Ciò accadrà se si prova questo comando sopra in CMD.EXE

Ora guarda come ti costringerò a bypassare il file di errore ACCESS DENIED.

C: \ users \ system32> cd / dd:

D:> per / r% g in (babar) do (trova / n / i "Nome cartella:% g") premi invio

D:> (trova / n / i "Nome cartella: D: \ babar")

e premere "ctrl C pulsanti" per annullare ed uscire dalla shell CMD

Spero che questo sia sufficiente per capire quanti siti non mostrano errori durante la spiegazione dei contenuti.

Grazie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.