Как удалить определенную подпапку в родительской папке с помощью командного файла?

windows batch-file cmd

102 просмотра

2 ответа

37 Репутация автора

Я хотел бы создать пакетный файл, удалив или удалив папку C:\temp\root\students\type1, ее подпапку и все файлы.

У меня есть следующие папки и файлы:

C:\temp
C:\temp\root
C:\temp\root\students
C:\temp\root\tutors
C:\temp\root\students\type1
C:\temp\root\students\type2
C:\temp\root\tutors\type1
C:\temp\root\tutors\type2
C:\temp\root\students\type1\details.txt
C:\temp\root\students\type1\assignment1
C:\temp\root\students\type1\assignment1\results.txt

Папка C:\temp\root\students\type1\assignment1указана в командном файле.

Я хотел бы перейти на одну папку / каталог вверх и удалить или удалить C:\temp\root\students\type1в моем командном файле (test.bat).

Пожалуйста, помогите мне с этим.

Автор: PNouma2121 Источник Размещён: 19.07.2016 02:16

Ответы (2)


2 плюса

2932 Репутация автора

Решение

Использовать это:

rd /s /q C:\temp\root\students\type1

Он будет удалять файлы и папки рекурсивно, осторожно, без подсказок. Это своего рода замена старого доброго дельтри. Лучший.

РЕДАКТИРОВАТЬ: в своем блокноте создайте mygoodbatch.bat с этим содержанием:

md C:\temp
md C:\temp\root
md C:\temp\root\students
md C:\temp\root\tutors
md C:\temp\root\students\type1
md C:\temp\root\students\type2
md C:\temp\root\tutors\type1
md C:\temp\root\tutors\type2
md C:\temp\root\students\type1\details.txt
md C:\temp\root\students\type1\assignment1
md C:\temp\root\students\type1\assignment1\results.txt
rd /s /q C:\temp\root\students\type1

( md - это команда make dir dos, поэтому все строки, начинающиеся с нее, создают папки - последняя строка - это деление вашего уровня 4AA)

Сохраните этот пакет в корне вашего диска и затем запустите его. Я действительно хочу, чтобы это было то, что вы хотите. Что я еще не понял, так это то, что вы создаете структуру каталогов и в то же время исключаете уровень 4AA ... так?

Автор: statosdotcom Размещён: 19.07.2016 02:36

1 плюс

2987 Репутация автора

Вы можете использовать цикл for, чтобы получить родительскую папку для данной папки:

set target_dir=C:\temp\root\students\type1.test\assignment1

for %%a in ("%target_dir%") do (
    echo Removing %%~dpa%
    rd /s/q %%~dpa%
)
Автор: Anon Coward Размещён: 19.07.2016 03:14
Вопросы из категории :
32x32