การลบแบบกลุ่ม: การเข้าถึงถูกปฏิเสธ


10

ฉันมีปัญหากับdelคำสั่งในไฟล์แบตช์ เมื่อถึงขั้นตอนลบฉันจะได้รับข้อความ "การเข้าถึงถูกปฏิเสธ" ชุดคำสั่งของฉันมีลักษณะเช่นนี้

set destPath=\\Public01\Appl\CompOps\Jobs\

robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS

pushd "%destPath%"
del *.dtsConfig
ren *.dev .
popd

ป้อนคำอธิบายภาพที่นี่

ฉันสามารถเรียกดูไดเรกทอรีและลบไฟล์โดยไม่มีปัญหาใด ๆ ในWindows Explorer

ฉันพยายามเรียกใช้ในฐานะผู้ดูแล แต่ก็ยังเป็นปัญหาเดียวกัน

คำตอบ:


7

หากต้องการบังคับให้delคำสั่งลบไฟล์แบบอ่านอย่างเดียวให้เพิ่มการ/Fตั้งค่าสถานะ

เห็นได้ชัดว่าเป็นไฟล์แบบอ่านอย่างเดียวไม่สามารถตามปกติถูกลบออกจากไฟล์ชุดแม้ว่ามันจะยังคงสามารถลบผ่านWindows Explorer เพื่อตรวจสอบว่าไฟล์ของคุณเป็นแบบอ่านอย่างเดียวคุณสามารถคลิกขวาที่ไฟล์และเลือกคุณสมบัติหรือป้อนattrib <filename>ที่พรอมต์คำสั่ง นี่จะแสดงชุดตัวอักษรที่สอดคล้องกับคุณสมบัติไฟล์ที่แตกต่างกัน

R = Read-only file
A = Archive file
S = System file
H = Hidden file

attrib <filename> -Rคุณสามารถลบแท็กอ่านอย่างเดียวโดยยกเลิกการเลือกช่องในหน้าต่างคุณสมบัติหรือใช้คำสั่ง


โชคไม่ดีที่ไม่สามารถแก้ปัญหานี้ได้ฉันจะอัปเดตคำถามของฉันเพื่อระบุคำแนะนำของคุณ
agradl

ลองวางpauseก่อนdelคำสั่งแล้วลองลบผ่าน Windows Explorer ในขณะที่หยุดชั่วคราว
SaintWacko

ฉันพบวิธีแก้ปัญหาอย่างไรก็ตามหากคุณต้องการแก้ไขคำตอบของคุณเพื่อให้มีคำแนะนำเพิ่มเติมนอกเหนือจากโซลูชันของฉันฉันยินดีที่จะทำเครื่องหมายว่าเป็นคำตอบ
agradl

เอาล่ะข้อมูลนั้นมีประโยชน์ย้อนหลังหรือไม่? :)
SaintWacko

ผมมั่นใจว่ามันจะเป็นประโยชน์เมื่อฉันลืมเกี่ยวกับปัญหานี้เดือนนับจากนี้ :)
agradl

2

หลังจากทดลองกับตัวเลือกที่มีให้กับคำสั่ง "del" ฉันค้นพบว่าไฟล์ที่ฉันพยายามลบนั้นเป็นแบบอ่านอย่างเดียว เพื่อแก้ไขปัญหาฉันสามารถแก้ไขไฟล์เพื่อลบคุณลักษณะอ่านอย่างเดียวหรือระบุตัวเลือก / F

สคริปต์สุดท้ายคือ

set destPath=\\Public01\Appl\CompOps\Jobs\

robocopy . "%destPath%" *.dtsx *.dev *.prod *.ppro /IS

pushd "%destPath%"
del /F *.dtsConfig
ren *.dev .
popd

วิธีแก้ไขปัญหาง่าย ๆ แต่เกิดข้อผิดพลาดที่ทำให้เข้าใจผิด หวังว่านี่จะช่วยคนอื่นได้


หากคุณสามารถอ่านได้เท่านั้นการเข้าถึงที่ถูกปฏิเสธนั้นฟังดูเหมาะสมกับฉัน
surfasb

1

สิ่งที่ใช้ได้กับพีซี Windows 8.1 ของฉัน:

ก่อนอื่นต้องปิด Windows Explorer โดย:

กดCtrl+ Alt+ Delสำหรับการเปิดตัวจัดการงานให้ไปที่กระบวนการค้นหาWindows Explorerคลิกขวาและงานปลาย ไม่ต้องกังวลหากแถบเริ่มหายไปและอย่างอื่น ใช้Alt+ Tabเพื่อข้ามระหว่างไฟล์ จากนั้นในที่ Task Managerคลิกไฟล์และเรียกใช้งานใหม่cmdและชนิด สิ่งนี้จะเปิดCommand Line ให้คุณ

ภายในอาคารผู้โดยสาร :

หากรุ่นของคุณคือ 32 บิตและเป็นในกรณีของฉันมันอยู่ในProgram Files (x86)ดังนั้นคุณควรพิมพ์:

cd "C:\Program Files (x86)\Git\git-cheetah"
regsvr32 /u git_shell_ext64.dll

นี่คือการลงทะเบียน

คุณสามารถข้ามระหว่างไดเรกทอรีที่ใช้cd directorynameและคุณสามารถเรียกคืนหนึ่งไดเรกทอรีcd ..ได้ สำหรับการดูสิ่งที่อยู่ในไดเรกทอรีคุณสามารถพิมพ์dirเมื่อคุณอยู่ในไดเรกทอรีนั้น สำหรับการลบประเภทไฟล์:

del /F filename

หลังจากนั้นอีกครั้งเปิดตัวจัดการงานให้ไปที่ไฟล์explorerแล้วเรียกใช้ ด้วยวิธีนี้คุณจะได้รับการแสดงผลตามปกติ ไปที่โฟลเดอร์Gitที่เราต้องการกำจัดและลบทิ้งง่ายๆ

ฉันหวังว่านี่จะใช้งานได้กับคนอื่น ๆ ที่ใช้ Windows 8.1

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