Usiłuję napisać plik wsadowy, który przechodziłby przez katalog i usuwałem folder o nazwie „SAMPLE”. Oto mój kod do tej pory, każda pomoc byłaby bardzo mile widziana!
@echo off title CZEKAJ!
Ustaw „sourceDir = z: \ FOLDERS”
JEŚLI NIE ISTNIEJE „% sourceDir%” (echo. Nie można znaleźć% sourceDir% i GoTo: gotowe)
:: usuń pliki For / F "Delims =" %%! w („Dir”% sourceDir% \ ”) do &
@rd„ %%! ” / s / q "% sourcedir% \ * \ SAMPLE": Gotowy tytuł, Gotowe .......
echo. i pauza> nul
batch-file
użytkownik213878
źródło
źródło
Odpowiedzi:
Musisz użyć %% d w pliku wsadowym, ale to jest podstawowa forma. Użyłem podobnych konstrukcji do czyszczenia katalogów roboczych Subversion, aby usunąć foldery .svn.
Edycja: Naprawiono składnię polecenia for. W chwili, gdy pisałem, pracowałem z pamięci i z dala od systemu Windows. Przepraszam.
źródło
@ECHO OFF SET FOLDER_PATH=Z:\FOLDERS SET SUBFOLDER_NAME=SAMPLE for /d /r %FOLDER_PATH% %%d in (%SUBFOLDER_NAME%) DO @if exist %%d echo "%%d" && rd /s/q "%%d"
for
poleceniu, aby poprawnie obsługiwać ścieżki ze spacjami. Zaktualizowałem moją odpowiedź.Cadillac odpowiada na to pytanie. Napisałem to jako skrypt wsadowy, który przyjmuje parametry opcji i ma trochę konfiguracji, która może pomóc OP i innym, którzy chcą robić nieco inne rzeczy. Instrukcje echa są opcjonalne i można je usunąć, jeśli nie chcesz żadnych danych wyjściowych operacji. Daj mi znać, jeśli są jakieś błędy.
Przykład tego, jak to może działać
W tym przykładzie ustawiono opcję wieloznacznika na true, więcej informacji zawiera poniższy kod
dir D:\deltest
delete-sample-dir.bat d:\deltest
dir D:\deltest
Kod dla
delete-sample-dir.bat
źródło
%%i
cytowane zmienne i lepsze wykorzystanie"%1%"
zamiast"%~1"
. Poza tymif exist
jest zbyteczne.@ user213878 komentarz rozwiązanie:
Kod dla deleteFolderDebug.bat
źródło