เหตุใด FIND บน Windows 7 จึงมีข้อผิดพลาด“ Access Denied” [ปิด]


10

ฉันมีบัญชีผู้ดูแลระบบในเครื่อง Windows 7 x64 ไม่ใช่บัญชีผู้ดูแลระบบบัญชีเป็นเพียงสมาชิกของกลุ่มผู้ดูแลระบบ

การติดตั้งเป็นค่าเริ่มต้น เมื่อผู้ใช้เปิดพรอมต์คำสั่งมันจะจบลงในไดเรกทอรี% HOMEPATH% ของผู้ใช้ซึ่งคุณจะพบไดเรกทอรีต่าง ๆ เช่นโฟลเดอร์เอกสาร หากผู้ใช้ใช้คำสั่ง FIND (windows) ต่อไปนี้จะเกิดข้อผิดพลาด "Access Denied":

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

การใช้ runas หรือคลิกขวาที่พรอมต์คำสั่งเพื่อเรียกใช้ในฐานะผู้ดูแลระบบจะไม่เปลี่ยนพฤติกรรมนี้ cmd.exe ระดับผู้ดูแลระบบยังคงทำให้ฉันมีข้อผิดพลาดเดียวกัน การเปลี่ยนพา ธ ไปยังไดเร็กทอรีอื่นให้ข้อผิดพลาดเดียวกัน

คำถามของฉันคือ: เราควรใช้คำสั่ง FIND (และอื่น ๆ ) ได้อย่างไร? สิทธิอะไรบ้างที่จำเป็น?


คำถามนี้สามารถย้ายไปยัง superuser ได้หรือไม่? มันเป็นการจับคู่ที่เกี่ยวข้องเท่านั้นเมื่อค้นหาปัญหานี้และสมควรได้รับคำตอบที่กระชับ
not2savvy

คำตอบ:


13

คุณกำลังพยายามดำเนินการค้นหาในไดเรกทอรี ใช้งานได้กับไฟล์เท่านั้น ลองสิ่งนี้:

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

ขวา! ดังนั้นคุณต้องรู้ล่วงหน้าว่าไฟล์หรือไฟล์ใดที่อยู่ในโฟลเดอร์ที่ประสบความสำเร็จในการใช้คำสั่งค้นหาเพื่อค้นหาสตริงข้อความที่คุณกำลังมองหา ไม่เข้าใจการเรียกซ้ำ มันสูญเสียความสามารถนั้นไปที่ไหนสักแห่งระหว่าง "การพัฒนา" ด้วยเหตุนี้คุณอาจcdเข้าไปในไดเรกทอรีที่มีไฟล์และปัญหาfind /i "my string" *ซึ่งจะค้นหาไฟล์ทั้งหมดในโฟลเดอร์นั้นเพื่อหา "my string"
Samir

4

นั่นเป็นความจริงดูเหมือนว่า Find จะไม่เกิดขึ้นอีกแล้ว แต่เฮ้ไม่ต้องกังวลเราสามารถใช้ความช่วยเหลือด้านสคริปต์เล็กน้อย นี่คือสิ่งที่ฉันลองและใช้งานได้:

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

นี่จะเป็นการค้นหาโฟลเดอร์ย่อยทั้งหมด

สิ่งนี้อาจสร้างผลลัพธ์หลายบรรทัด ดังนั้นมันอาจจะง่ายกว่าที่จะส่งออกไปยังไฟล์โดยตรง

สำหรับ / R% G ใน (*) ทำ (ค้นหา "String_I_am_Looking_For"% G) >> output.txt

จากนั้นค้นหาสตริงการค้นหาในไฟล์นี้ (คุณสามารถใช้การตรวจสอบด้วยภาพหรือ Ctrl + F เพื่อค้นหาที่นี่)


เล็กน้อยที่น่าอึดอัดใจที่จะค้นหาการแข่งขันที่เกิดขึ้นจริงในหมู่ขยะทั้งหมดที่คำสั่ง 'ค้นหา' ส่งออก แต่สิ่งนี้จะหลอกลวงสำหรับการค้นหาที่แปลก!
John Rix

1
ฉันได้แก้ไขคำสั่งเพื่อส่งออกไปยังไฟล์ข้อความ - บางทีอาจเป็นวิธีที่ง่ายกว่าในการใช้เอาต์พุตที่สร้างขึ้น
shivesh suman

3

นี้ไม่ถูกต้อง. FIND ใช้เพื่อค้นหาไดเรกทอรีย่อยทั้งหมด แต่ไม่สามารถ 'สามารถ' ได้อีกต่อไปเนื่องจากความปลอดภัยของ Win 7 คุณต้องติดตั้งระบบไฟล์ออฟไลน์เพื่อใช้ FIND อย่างถูกต้อง


คุณสามารถเพิ่ม Windows Vista ลงในรายการรุ่น Windows ที่ไม่มีคำสั่ง Find ที่เข้าใจการเรียกซ้ำได้อีกต่อไป ฉันใช้ Vista Ultimate, x64 ในขณะนี้และฉันพบปัญหาเดียวกัน
Samir

3
อาจใช้ findstr แทน
aeroson

@ aeroson: นั่นคือคำตอบ - คุณจะโพสต์หรือไม่
Pieter Geerkens

@PieterGeerkens ฉันรู้ว่ามันใช้งานได้สำหรับฉัน แต่ไม่รู้ว่าทำไมโปรดโพสต์มัน
aeroson

-2

นี่คือบาบาที่นี่ฉันเรียกเก็บค่าธรรมเนียมจากสิ่งนี้ แต่ตอนนี้มันฟรีเพราะตัวแทน

ให้ฉันบอกคุณว่าคุณจะหลีกเลี่ยงการเข้าถึงไฟล์หรือโฟลเดอร์ที่ถูกปฏิเสธผ่านทาง cmd:

วัตถุประสงค์: คุณต้องทราบชื่อของโฟลเดอร์และไดรฟ์ที่คุณต้องการเข้าถึง

หากคุณใช้สิ่งนี้ให้บอกว่าโฟลเดอร์ของคุณอยู่ในไดรฟ์ -D และชื่อเป็น babar

C: \ users \ system32> cd / dd: กด Enter

D:> สำหรับ% g ใน (babar) ทำ (ค้นหา / n / i "ชื่อโฟลเดอร์:" "% g") กด enter

D:> ACEN DENIED - ไม่พบไฟล์

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

สิ่งนี้จะเกิดขึ้นหากคุณลองใช้คำสั่งด้านบนใน CMD.EXE

ตอนนี้ดูว่าฉันจะทำให้คุณข้ามไฟล์ข้อผิดพลาด ACCESS DENIED ได้อย่างไร

C: \ users \ system32> cd / dd:

D:> สำหรับ / r% g ใน (babar) ทำ (ค้นหา / n / i "ชื่อโฟลเดอร์:% g") กด enter

D:> (ค้นหา / n / i "ชื่อโฟลเดอร์: D: \ babar")

และกดปุ่ม "ctrl C" เพื่อยกเลิกและออกจากเปลือก CMD

ฉันหวังว่านี่จะเพียงพอที่จะเข้าใจว่ามีกี่ไซต์ที่ไม่แสดงข้อผิดพลาดในระหว่างการอธิบายเนื้อหา

ขอบคุณ.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.