Usunięcie partii: odmowa dostępu

10

Mam problemy z delpoleceniem w pliku wsadowym. Gdy dojdzie do kroku usuwania, pojawia się komunikat „Odmowa dostępu”. Moje polecenie wsadowe wygląda mniej więcej tak.

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

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

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

Wpisz opis zdjęcia tutaj

Mogę przeglądać katalog i usuwać pliki bez problemu w Eksploratorze Windows .

Próbowałem uruchomić jako administrator, ale wciąż ten sam problem.

agradl
źródło

Odpowiedzi:

7

Aby wymusić delpolecenie usunięcia plików tylko do odczytu, dodaj /Fflagę.

Najwyraźniej pliku tylko do odczytu nie można normalnie usunąć za pomocą pliku wsadowego, chociaż nadal można go usunąć za pomocą Eksploratora Windows . Aby sprawdzić, czy plik jest tylko do odczytu, możesz kliknąć plik prawym przyciskiem myszy i wybrać właściwości lub wpisać attrib <filename>w wierszu polecenia. Spowoduje to wyświetlenie serii liter odpowiadających różnym atrybutom pliku.

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

Możesz usunąć tag tylko do odczytu, odznaczając pole w oknie właściwości lub uruchamiając polecenie attrib <filename> -R.

SaintWacko
źródło
niestety to nie rozwiązuje problemu, zaktualizuję moje pytanie, aby uwzględnić Twoją sugestię.
agradl,
Spróbuj wstawić pauseprzed delpoleceniem, a następnie spróbuj go usunąć za pomocą Eksploratora Windows, gdy jest on wstrzymany.
SaintWacko,
Znalazłem rozwiązanie, ale jeśli chcesz zredagować swoją odpowiedź, zawierającą pewne sugestie oprócz mojego rozwiązania, chętnie
oznaczę
W porządku, czy te informacje są pomocne z mocą wsteczną? :)
SaintWacko,
Jestem pewien, że będzie to pomocne, gdy zapomnę o tym problemie za kilka miesięcy :)
agradl
2

Po eksperymentowaniu z opcjami dostępnymi dla polecenia „del” odkryłem, że pliki, które próbowałem usunąć, były tylko do odczytu. Aby rozwiązać problem, mogę albo edytować pliki, aby usunąć atrybut tylko do odczytu, lub określić opcję / F.

Ostateczny skrypt to

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

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

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

Proste rozwiązanie, ale mylący komunikat o błędzie. Mam nadzieję, że pomoże to komuś innemu.

agradl
źródło
Jeśli możesz to tylko przeczytać, odmowa dostępu wydaje mi się odpowiednia.
surfasb,
1

Co działało na moim komputerze z systemem Windows 8.1:

Przede wszystkim zamknij Eksploratora Windows przez:

Naciśnij Ctrl+ Alt+, Delaby otworzyć Menedżera zadań , przejdź do procesów, znajdź Eksploratora Windows , kliknij prawym przyciskiem myszy i zakończ zadanie . Nie martw się, jeśli pasek startowy zniknie i coś jeszcze. Użyj Alt+ Tabdo przechodzenia między plikami. Następnie w Menedżerze zadań kliknij Plik i Uruchom nowe zadanie , a następnie wpisz cmd. Spowoduje to otwarcie linii poleceń .

Wewnątrz terminala :

Jeśli twoja wersja jest 32-bitowa i tak jest w moim przypadku, znajduje się w Program Files (x86) , więc powinieneś wpisać:

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

To było za wyrejestrowanie się.

Możesz przechodzić między katalogami za pomocą cd directorynamei możesz odzyskać jeden katalog przez cd ... Aby przeglądać zawartość katalogu, możesz wpisać go dirw tym katalogu. Aby usunąć typ pliku:

del /F filename

Następnie ponownie otwórz Menedżera zadań , przejdź do Plik , a następnie uruchom explorer. W ten sposób przejdziesz do zwykłego wyświetlacza. Przejdź do folderu Git, którego chcieliśmy się pozbyć, i po prostu usuń go.

Mam nadzieję, że to zadziała dla innych osób korzystających z systemu Windows 8.1.

Tolga Varol
źródło