Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.96
Elias_neo
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 19
#1

Удаление файлов текущего каталога, имена которых начинаются с буквы, указанной в качестве параметра - CMD/BAT

11.11.2012, 16:32. Просмотров 3874. Ответов 12
Метки нет (Все метки)

Нужно попытаться удалить файлы текущего каталога, имена которых начинаются с буквы, указанной в качестве параметра. Для каждого файла в случае успешного удаления выдавать сообщение "Файл удален". В случае неудачи выдавать сообщение "Файл защищен от удаления. Удалить его?" и в случае ответа "Y" все-таки удалить засранца)

как-то так начинается:

Bash
1
2
3
4
@echo off
set /p p=%Param
del /s %p%*.*
pause
такой вариант у меня удаляет все, кроме защищенных... нужно как-то сюда привязать условие, что если не получается удалить, то спросить еще раз и удалить вот такой строчкой "
Bash
1
del /s /f %p%*.*
?
буду рад, если поможете)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2012, 16:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удаление файлов текущего каталога, имена которых начинаются с буквы, указанной в качестве параметра (CMD/BAT):

Удаление из заданного каталога всех текстовых файлов, имена которых содержат 4 или 5 символов
Помогите сделать задачу на командной строке win. Как удалять файлы я знаю, а...

Вывести список всех файлов из указанной директории, имена которых не соответствуют шаблону имени 8.3
Вывести список всех файлов из указанной директории, имена которых не...

Вывести список всех файлов из указанной директории, имена которых не соответствуют шаблону имени 8.3
Разработать утилиту. Оформить ее как командный (процедурный) файл. ...

Записать список всех файлов из каталога К, имена которых заканчиваются на цифру, в файл F
Помогите пожалуйста зделать 1 задание есть небольшие догадки но он записывает...

Построить файл из строк всех файлов с указанным расширением текущего каталога, в которых встречается многоточи
9. Построить файл из строк всех файлов с указанным расширением текущего...

Удаление определённых файлов из профильных папок пользователей, имена которых заранее неизвестны
Приветствую. Настигла такая проблема. У юзверей есть на рабочих столах...

12
AzamatVialove
1 / 1 / 1
Регистрация: 17.05.2012
Сообщений: 42
11.11.2012, 17:22 #2
Системные файлы, не сможешь удалить в любом случае .
0
sov44
11.11.2012, 17:36
  #3

Не по теме:

Elias_neo, идея вируснёй попахивает. Это не есть гут

0
AzamatVialove
1 / 1 / 1
Регистрация: 17.05.2012
Сообщений: 42
11.11.2012, 17:37 #4
что бы такую проверку провести как ты написал , нужно писать скрипт на *.vbs или *.cmd . Вопрос задавай к программерам )))
0
Elias_neo
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 19
11.11.2012, 19:12  [ТС] #5
ну, батник и пишу)
системные и не интересуют... и не вирус - честно, честно))
0
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 851
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
12.11.2012, 02:38 #6
О каком методе блокировки файла идет речь?

Лекарства от всех видов болезней еще не изобрели.
0
Elias_neo
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 19
12.11.2012, 13:00  [ТС] #7
В случае, если файл имеет атрибут "только чтение"...
Тогда простым вызовом del его удалить нельзя... только с параметром /f
0
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 851
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
12.11.2012, 14:11 #8
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
Setlocal EnableDelayedExpansion
set /p param=Введите первую литеру файла ^>
for /f "delims=" %%A in ('dir %param%*.* /b /a:-D-S-H') do (
  del "%%A" 2>nul 1>&2
  if exist "%%A" (
      set /p=Не получилось удалить файл "%%A". Сделать это принудительно? <nul
      choice
      if !errorlevel!==1 (
        del /f "%%A"
        if exist "%%A" echo Файл "%%A" заблокирован. Удаление невозможно.
      )
  )
  if not exist "%%A" echo Файл "%%A" успешно удален.
)
pause
1
Elias_neo
1 / 1 / 0
Регистрация: 31.03.2012
Сообщений: 19
12.11.2012, 15:29  [ТС] #9
идеально) Осталось разобрать как некоторые строки работают, а так все зашибенно) Спасибо

Добавлено через 36 минут
можно вопрос..... как работают эти две строки?
Bash
1
2
for /f "delims=" %%A in ('dir %param%*.* /b /a:-D-S-H') do (
  del "%%A" 2>nul 1>&2
0
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 851
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
12.11.2012, 15:47 #10
Bash
dir %param%*.* /b /a:-D-S-H
Перечисляет по маске нужные Вам файлы за исключением D - папок, S - системных, H - скрытых.

"delims=" - запрещает деление на токены по пробелу (для файлов, в имени которых они могут попасться).

2>nul 1>&2 - зануляет поток ошибок StdError и в этот же поток перенаправляет исходящий поток StdOut.
(Это чтобы на экран не выводилась лишняя информация от предыдущей команды del)
1
Araell
0 / 0 / 1
Регистрация: 03.12.2016
Сообщений: 30
19.12.2017, 06:07 #11
Извините пожалуйста, не подскажете, как нужно изменить этот код, чтобы удалялись файлы, которые начинаются с буквы, указанной в качестве параметра командной строки?
0
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 851
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
19.12.2017, 13:31 #12
Windows Batch file
1
set "param=%~1"
0
Araell
0 / 0 / 1
Регистрация: 03.12.2016
Сообщений: 30
20.12.2017, 13:53 #13
Огромное спасибо!))
0
20.12.2017, 13:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2017, 13:53
Привет! Вот еще темы с решениями:

Список файлов текущего каталога
Привет всем! не могу понять почему программа работает немного не так, как...

Создать командный файл, который выводил бы содержимое каталога, указанного в качестве параметра...
Помогите определить в чем ошибка бат файла:( Задание: Создать командный...

Из каталога, имя которого указано в качестве формального параметра, копировать все файлы с расширением .C
Имеется задание: Создавать резервную копию исходных файлов. Копировать все...

Копирование папок, имена которых начинаются с определённого сочетания символов
Добрый день! Есть папка Main, а в ней много папок. А есть папка Target Нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru