2012-12-07 21 views
71

Mam skrypt wsadowy w następujący sposób.Skrypt wsadowy do usuwania plików

D: 
del "D:\TEST\TEST1\Archive\*.TSV" 
del "D:\TEST\TEST1\Archive\*.TXT" 
del "D:\TEST\TEST2\Archive\*.TSV" 
del "D:\TEST\TEST2\Archive\*.TXT" 
del "D:\TEST\TEST 100%\Archive\*.TSV" 
del "D:\TEST\TEST 100%\Archive\*.TXT" 

Powyższy kod usuwa wszystkie „.txt” i pliki „TSV” ze wszystkich folderów za wyjątkiem folderu TEST 100%. W celu usunięcia plików z TEST 100% pojawia się błąd jako The Path could not be found. Domyślam się, że symbol% ​​w nazwie folderu tworzy problem. Czy ktoś pomoże mi rozwiązać problem i usunąć pliki z folderu TEST 100%?

+0

Dlaczego masz ofertę w pierwszym wierszu? Ponadto, dlaczego odwołujesz się do dysku, gdy plik wsadowy został już zmieniony na ten dysk za pomocą pierwszego wiersza? Próbowałem odtworzyć twój problem i wszystko działało. Czy potwierdziłeś, że Archiwum istnieje w Test 100%? – RonaldBarzell

Odpowiedz

85

Musisz uciec% z innym ...

del "D:\TEST\TEST 100%%\Archive*.TXT" 
+0

Nie mogę mówić za OP, ale w moim systemie nie ma problemu ze znalezieniem ścieżki z%, a ucieczka z %% uniemożliwia systemowi znalezienie go. – RonaldBarzell

+0

@ user1161318 - Zrobiłem test w systemie Windows 7. Bez ucieczki, w pliku wsadowym, wynik "System nie może znaleźć określonej ścieżki". Jak napisałem, działa. –

+0

OK, w XP uzyskuję przeciwne wyniki. Znajduje ścieżkę dobrze z%, ale nie może jej znaleźć z %%. – RonaldBarzell

5

Istnieje wiele sposobów robienia rzeczy w partii, więc jeśli ucieczce z podwójnym procent %% nie działa dla Ciebie, to można spróbować coś takiego:

set olddir=%CD% 
cd /d "path of folder" 
del "file name/ or *.txt etc..." 
cd /d "%olddir%" 

Jak to działa:

set olddir=%CD% ustawia zmienną "olddir" lub jakakolwiek inna nazwa zmiennej y ou lubię do katalogu Twój plik wsadowy został uruchomiony z.

cd /d "path of folder" zmienia bieżący katalog, który będzie przeglądać partia. zachowaj cytaty i zmień ścieżkę folderu, do której zmierza Twoja ścieżka.

del "file name/ or *.txt etc..." usunie plik w bieżącym katalogu swoją partię spojrzenie, po prostu nie dodać ścieżkę przed nazwą pliku i po prostu mieć pełną nazwę pliku lub usunąć wiele plików z tym samym rozszerzeniem z *.txt lub jakiekolwiek inne rozszerzenie, którego potrzebujesz.

cd /d "%olddir%" przejmuje zmienną zapisaną ze starą ścieżką i wraca do katalogu, w którym została rozpoczęta partia, nie jest to ważne, jeśli nie chcesz, aby partia powracała do poprzedniej ścieżki katalogowej i jak podana przed zmienną można zmienić nazwę na dowolną, zmieniając numer set olddir=%CD% line.

+0

Podwójne skakanie powinno zadziałać, ponieważ nie jest to sztuczka, jest sposobem ... – erm3nda

-7

w kodzie partii ścieżka nie powinna zawierać spacji, więc proszę zmienić nazwę folderu z "TEST 100%" na "TEST_100%", a nowy kod będzie del "D: \ TEST \ TEST_100% \ Archiwum * .TXT”

nadzieja będzie to rozwiązać Twój problem

+4

Nigdy o tym nie słyszałem. Czy to nowe? -Sarazm wyłączony. Działa ze spacjami, tak jak to czyni bez, o ile ustawisz je w cudzysłowach. – Blacktempel

8

Powiedzmy, że oprogramowanie zapisane na pulpicie.
jeśli chcesz usunąć cały folder, taki jak program deinstalacyjny, możesz go użyć.

cd C:\Users\User\Detsktop\ 
rd /s /q SOFTWARE 

będzie usunąć cały folder o nazwie oprogramowania i wszystkich jego plików i podfolderów

Upewnij usunąć odpowiednim folderze Bo to nie ma tak/nie Opcja

2

Rozważyć pliki, które musisz usunąć, mają rozszerzenie txt i znajdują się w lokalizacji D:\My Folder, możesz użyć poniższego kodu wewnątrz pliku bat.

cd "D:\My Folder" 
DEL *.txt 
Powiązane problemy