2016-07-19 3 views
2

Я хотел бы создать пакетный файл, удаляющий или удаляющий папку 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).

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

+1

C является языком программирования, а не то, что жесткого диска вашего материала включен. Это не должно быть помечено C. – evaitl

+0

Где ваша существующая команда командного файла? Просто измените папку в соответствии с вашими потребностями. – dbmitch

ответ

1

Используйте это:

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

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

EDIT: в пределах вашего блокнота, создать 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 

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

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

+0

Большое спасибо за ваш ответ. Это физические папки/каталоги. Есть ли способ получить эту структуру папок из пакетного файла и удалить эту конкретную папку? Что я имел в виду структуру папок является: ** C: \ Temp ** является уровень 1 ** C: \ Temp \ корень ** есть Уровень 2 ** C: \ Temp \ корень \ студентов * * Уровень 3A ** C: \ temp \ root \ tutors ** - Уровень 3B ** C: \ temp \ root \ students \ type1 ** - Уровень 4AA ** C: \ temp \ root \ students \ type2 ** is Level 4AB ** C: \ temp \ root \ tutors \ type1 ** is 4BA ** C: \ temp \ root \ tutors \ type2 ** is 4BB – PNouma2121

+0

Извините, не уверен, правильно ли я вас понял , Основной принцип: все, что вы ставите вместо ** C: \ temp \ root \ students \ type1 **, из моего ответа выше, что-либо внутри этой папки будет удалено. – statosdotcom

+0

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

1

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

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

for %%a in ("%target_dir%") do (
    echo Removing %%~dpa% 
    rd /s/q %%~dpa% 
) 
Смежные вопросы