Elimina batch: accesso negato


10

Sto riscontrando problemi con il delcomando in un file batch. Quando si arriva alla fase di eliminazione, viene visualizzato il messaggio "Accesso negato". Il mio comando batch è simile a questo.

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

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

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

Inserisci qui la descrizione dell'immagine

Posso selezionare la directory ed eliminare i file senza alcun problema in Esplora risorse di Windows .

Ho provato a correre come amministratore, ma comunque lo stesso problema.

Risposte:


7

Per forzare un delcomando per eliminare i file di sola lettura, aggiungi il /Fflag.

Apparentemente, un file di sola lettura non può normalmente essere eliminato da un file batch, sebbene possa comunque essere eliminato tramite Esplora risorse . Per verificare se il file è di sola lettura, è possibile fare clic con il pulsante destro del mouse sul file e selezionare le proprietà oppure accedere attrib <filename>al prompt dei comandi. Questo mostrerà una serie di lettere corrispondenti a diversi attributi di file.

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

È possibile rimuovere il tag di sola lettura deselezionando la casella nella finestra delle proprietà o eseguendo il comando attrib <filename> -R.


sfortunatamente ciò non risolve il problema, aggiornerò la mia domanda per includere il tuo suggerimento.
agradl,

Prova a mettere pauseprima del delcomando, quindi prova a eliminarlo tramite Esplora risorse mentre è in pausa.
SaintWacko,

Ho trovato la soluzione, tuttavia se desideri modificare la tua risposta per includere alcuni suggerimenti oltre alla mia soluzione, sarei felice di contrassegnarla come risposta
agradl

Bene, queste informazioni sono utili retroattivamente? :)
SaintWacko,

Sono sicuro che sarà utile quando mi dimentico di questo problema tra mesi :)
agradl

2

Dopo aver sperimentato le opzioni disponibili per il comando "del", ho scoperto che i file che stavo tentando di eliminare erano di sola lettura. Per risolvere il problema, ho potuto modificare i file per rimuovere l'attributo di sola lettura o specificare l'opzione / F.

Lo script finale è

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

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

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

Soluzione semplice, ma un messaggio di errore fuorviante. Spero che questo aiuti qualcun altro.


Se riesci solo a leggerlo, un accesso negato mi sembra giusto.
surfasb,

1

Cosa ha funzionato per il mio PC Windows 8.1:

Innanzitutto chiudi Windows Explorer:

Premi Ctrl+ Alt+ Delper aprire Task Manager , vai ai processi, trova Esplora risorse , fai clic con il pulsante destro del mouse e termina l'attività . Non preoccuparti se la barra di avvio è sparita e qualcos'altro. Usa Alt+ Tabper spostarti tra i file. Quindi in Task Manager fare clic su File ed Esegui nuova attività e digitare cmd. Questo ti aprirà una riga di comando .

All'interno del terminal :

Se la tua versione è a 32 bit, ed è nel mio caso, si trova in Programmi (x86) , quindi dovresti digitare:

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

Questo era per l'annullamento della registrazione.

Puoi attraversare tra le directory usando cd directorynamee puoi tornare indietro di una directory cd ... Per visualizzare ciò che si trova in una directory è possibile digitare dirquando ci si trova in quella directory. Per eliminare il tipo di file:

del /F filename

Dopodiché apri nuovamente Task Manager , vai su File , quindi esegui explorer. In questo modo si arriva alla visualizzazione normale. Vai alla cartella Git di cui volevamo eliminare ed eliminarlo semplicemente.

Spero che questo funzioni per altre persone che utilizzano Windows 8.1.

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.