Batch löschen: Zugriff verweigert

10

Ich habe Probleme mit dem delBefehl in einer Batchdatei. Wenn es zum Löschschritt kommt, erhalte ich die Meldung "Zugriff verweigert". Mein Batch-Befehl sieht ungefähr so ​​aus.

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

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

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

Geben Sie hier die Bildbeschreibung ein

Ich kann im Windows Explorer problemlos zum Verzeichnis navigieren und die Dateien löschen .

Ich habe versucht, als Administrator zu arbeiten, aber immer noch das gleiche Problem.

agradl
quelle

Antworten:

7

delFügen Sie das /FFlag hinzu, um einen Befehl zum Löschen schreibgeschützter Dateien zu erzwingen .

Anscheinend kann eine schreibgeschützte Datei normalerweise nicht von einer Batchdatei gelöscht werden, obwohl sie weiterhin über den Windows Explorer gelöscht werden kann . Um zu überprüfen, ob Ihre Datei schreibgeschützt ist, können Sie mit der rechten Maustaste auf die Datei klicken und Eigenschaften auswählen oder attrib <filename>an der Eingabeaufforderung eingeben . Dies zeigt eine Reihe von Buchstaben, die verschiedenen Dateiattributen entsprechen.

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

Sie können das schreibgeschützte Tag entfernen, indem Sie das Kontrollkästchen im Eigenschaftenfenster deaktivieren oder den Befehl ausführen attrib <filename> -R.

SaintWacko
quelle
Leider behebt das das Problem nicht, aber ich werde meine Frage aktualisieren, um Ihren Vorschlag aufzunehmen.
Agradl
Stellen Sie pauseden delBefehl vor und löschen Sie ihn dann über den Windows Explorer, während er angehalten ist.
SaintWacko
Ich habe die Lösung gefunden, aber wenn Sie Ihre Antwort bearbeiten möchten, um einige Vorschläge zusätzlich zu meiner Lösung aufzunehmen, würde ich sie gerne als Antwort markieren
agradl
Okay, sind diese Informationen rückwirkend hilfreich? :)
SaintWacko
Ich bin sicher, es wird hilfreich sein, wenn ich dieses Problem in Monaten vergesse :)
agradl
2

Nachdem ich mit den für den Befehl "del" verfügbaren Optionen experimentiert hatte, stellte ich fest, dass die Dateien, die ich löschen wollte, schreibgeschützt waren. Um das Problem zu beheben, könnte ich entweder die Dateien bearbeiten, um das schreibgeschützte Attribut zu entfernen, oder die Option / F angeben.

Das letzte Skript ist

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

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

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

Einfache Lösung, aber eine irreführende Fehlermeldung. Hoffentlich hilft das jemand anderem.

agradl
quelle
Wenn Sie es nur lesen können, klingt ein verweigerter Zugriff für mich ungefähr richtig.
Surfasb
1

Was hat für meinen Windows 8.1 PC funktioniert:

Schließen Sie zunächst den Windows Explorer mit:

Drücken Sie Ctrl+ Alt+, Delum den Task-Manager zu öffnen , gehen Sie zu den Prozessen, suchen Sie den Windows Explorer , klicken Sie mit der rechten Maustaste und beenden Sie die Aufgabe . Mach dir keine Sorgen, wenn die Startleiste weg ist und etwas anderes. Verwenden Sie Alt+ Tabzum Wechseln zwischen Dateien. Dann in der Task - Manager klicken Sie auf Datei und Ausführen neue Aufgabe und Art cmd. Dadurch wird eine Befehlszeile geöffnet .

Im Terminal :

Wenn Ihre Version 32-Bit ist und in meinem Fall in den Programmdateien (x86) , sollten Sie Folgendes eingeben:

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

Dies war für die Abmeldung.

Sie können mit zwischen Verzeichnissen wechseln cd directorynameund ein Verzeichnis mit zurückholen cd ... Um anzuzeigen, was sich in einem Verzeichnis befindet, können Sie eingeben, dirwenn Sie sich in diesem Verzeichnis befinden. Zum Löschen des Dateityps:

del /F filename

Öffnen Sie anschließend den Task-Manager erneut , gehen Sie zu Datei und führen Sie ihn aus explorer. Auf diese Weise gelangen Sie zur üblichen Anzeige. Gehen Sie zu dem Git- Ordner, den wir entfernen wollten, und löschen Sie ihn einfach.

Ich hoffe, dass dies für andere Leute funktioniert, die Windows 8.1 verwenden.

Tolga Varol
quelle