Hapus kumpulan: Akses ditolak

10

Saya mengalami masalah dengan delperintah dalam file batch. Ketika sampai pada langkah hapus, saya menerima pesan "Akses ditolak". Perintah batch saya terlihat seperti ini.

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

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

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

Masukkan deskripsi gambar di sini

Saya dapat menelusuri ke direktori dan menghapus file tanpa masalah di Windows Explorer .

Saya mencoba menjalankan sebagai administrator, tetapi masih masalah yang sama.

agradl
sumber

Jawaban:

7

Untuk memaksa delperintah untuk menghapus file read-only, tambahkan /Fflag.

Rupanya, file hanya-baca tidak bisa biasanya dihapus oleh file batch, meskipun masih bisa dihapus melalui Windows Explorer . Untuk memeriksa apakah file Anda hanya-baca, Anda dapat mengklik kanan pada file tersebut dan memilih properti, atau masuk attrib <filename>pada prompt perintah. Ini akan menampilkan serangkaian huruf yang sesuai dengan atribut file yang berbeda.

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

Anda dapat menghapus tag hanya-baca dengan menghapus centang pada kotak di jendela properti atau menjalankan perintah attrib <filename> -R.

SaintWacko
sumber
Sayangnya itu tidak memperbaiki masalah, saya akan memperbarui pertanyaan saya untuk memasukkan saran Anda.
agradl
Coba letakkan pausesebelum delperintah, dan kemudian coba hapus melalui Windows Explorer ketika sedang dijeda.
SaintWacko
Saya menemukan solusinya, namun jika Anda ingin mengedit jawaban Anda untuk memasukkan beberapa saran di samping solusi saya, saya akan dengan senang hati menandainya sebagai jawaban
agradl
Baiklah, apakah informasi itu berlaku surut? :)
SaintWacko
Saya yakin ini akan sangat membantu ketika saya melupakan masalah ini berbulan-bulan dari sekarang :)
agradl
2

Setelah bereksperimen dengan opsi yang tersedia untuk perintah "del", saya menemukan bahwa file yang saya coba hapus hanya baca-saja. Untuk mengatasi masalah ini saya bisa mengedit file untuk menghapus atribut read-only, atau menentukan opsi / F.

Script terakhir adalah

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

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

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

Solusi sederhana, tetapi pesan kesalahan menyesatkan. Semoga ini bisa membantu orang lain.

agradl
sumber
Jika Anda hanya bisa membacanya, akses ditolak terdengar tentang hak saya.
surfasb
1

Apa yang berfungsi untuk PC Windows 8.1 saya:

Pertama-tama tutup Windows Explorer dengan:

Tekan Ctrl+ Alt+ Deluntuk membuka Task Manager , buka proses, cari Windows Explorer , klik kanan, dan akhiri tugas . Jangan khawatir jika bilah mulai hilang dan sesuatu yang lain. Gunakan Alt+ Tabuntuk melintasi antar file. Kemudian di Task Manager klik File dan Jalankan tugas baru , dan ketik cmd. Ini akan membuka Anda Command Line .

Di dalam Terminal :

Jika versi Anda 32 bit, dan ini dalam kasus saya, ini terletak di Program Files (x86) , jadi Anda harus mengetik:

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

Ini untuk tidak mendaftar.

Anda dapat melintasi antara direktori menggunakan cd directorynamedan Anda dapat kembali satu direktori dengan cd ... Untuk melihat apa yang ada di direktori Anda bisa mengetikkan dirketika Anda berada di direktori itu. Untuk menghapus jenis file:

del /F filename

Setelah itu buka lagi Task Manager , buka File , lalu jalankan explorer. Dengan cara ini Anda akan mendapatkan tampilan yang biasa. Buka folder Git yang ingin kita singkirkan dan hapus saja.

Saya harap ini bekerja untuk orang lain yang menggunakan Windows 8.1.

Tolga Varol
sumber