Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Alexandr_7
15 / 3 / 2
Регистрация: 29.12.2015
Сообщений: 894
#1

Удалить все файлы, кроме одного - CMD/BAT

28.07.2016, 03:25. Просмотров 1173. Ответов 17
Метки нет (Все метки)

Здраствуйте. Может ууже создавались темы но я лишь нашел одну и то не то оказалось
Короче мне из заданной папке нужно стереть все файлы кроме одного.
http://www.cyberforum.ru/cmd-bat/thread1557622.html
Файлы которые нужно стереть неизвестно. Короче такто известно но их на столько много что легче стерать все кроме единственного с определенным расширением.
Батник должен стирать все файлы без какого либо ввода. Имя остающегося файла неизвествно но известно его расширение и известно счто такой файл будет в принципе 1 да хоть даже если 2 то их все равно нельзя удалять
Я нашел много примеров но в основном про папки. Или включая другие подпапки что мне категорически не нужно. Либо скрипт попрпосту удаляет заданные файлы но мне вот что и нужно что все файлы кроме заданного расширением и только в одной папки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2016, 03:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удалить все файлы, кроме одного (CMD/BAT):

Удалить все файлы, кроме указанных
Здравствуйте. Есть батник такого вида @Echo Off Set...

Копировать из текущего каталога все файлы с расширением .txt, кроме одного файла
Написать пакетный файл, который будет копировать из текущего каталога все файлы...

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

Удалить в текущей папке все TXT-файлы, кроме перечисленных
Добрый день! Собственно в названии сам вопрос. Нашёл такой вариант решения: ...

Удалить все папки и файлы кроме определенных 2 папок и 2 файлов
Нужна помощь профессионалов ! Борюсь со скриптом bat Надо удалить все папки...

17
Vergil
42 / 36 / 17
Регистрация: 11.11.2009
Сообщений: 244
28.07.2016, 06:08 #2
Задать расширение
Перебрать по одному все файлы в папке, например, через for
Если у файла расширение, как у вашего файла find или if, то пропускать, в обратном случае удалять
0
Alexandr_7
15 / 3 / 2
Регистрация: 29.12.2015
Сообщений: 894
28.07.2016, 14:03  [ТС] #3
Да пробовал но все попытки заканчивались неудачей.
Может кто вышлет батник. Хотябы посмотрю что я не так делаю. Кучу вариантов перепробьывал. Самый простой
Bash
1
for %%i in "Win32\Debug\*.*" do if not %%i  == "*.ini" del %%i
0
sov44
1758 / 742 / 127
Регистрация: 09.04.2011
Сообщений: 1,313
28.07.2016, 14:09 #4
Windows Batch file
1
for /f "delims=" %%a in ('dir /b /s /a-d "путь\*" 2^>nul') do if /i not "%%~xa"==".ini" del /q "%%a"
0
Alexandr_7
15 / 3 / 2
Регистрация: 29.12.2015
Сообщений: 894
28.07.2016, 14:17  [ТС] #5
Что за фигня. Путь и имя верное у найти не может хотя файлы там есть
0
Миниатюры
Удалить все файлы, кроме одного  
sov44
1758 / 742 / 127
Регистрация: 09.04.2011
Сообщений: 1,313
28.07.2016, 14:29 #6
Alexandr_7, посмотрите атрибуты файлов для удаления и добавьте соответствующий ключ. Например
Windows Batch file
1
for /f "delims=" %%a in ('dir /b /s /a-d "путь\*" 2^>nul') do if /i not "%%~xa"==".ini" del /f /q /ah "%%a"
0
Alexandr_7
15 / 3 / 2
Регистрация: 29.12.2015
Сообщений: 894
28.07.2016, 14:39  [ТС] #7
Но тут даже включая атрибуты должен файл удалятся тоесть удалятся он должен в любом случае
Ведь файлы неизвестны. Могу лишь сказать что эти файлы создает язык прграммирования и иногда случается ошибка в результате которой нужно удалить все файлы как и временные так и после компиляции и очистеть папку TEMP
Так что вот.
0
Миниатюры
Удалить все файлы, кроме одного  
sov44
1758 / 742 / 127
Регистрация: 09.04.2011
Сообщений: 1,313
28.07.2016, 14:54 #8
Alexandr_7, заметил, что имена файлов у вас в кириллице. Сохраните батник в 866 кодировке. И оставьте просто del /f /q
0
Alexandr_7
15 / 3 / 2
Регистрация: 29.12.2015
Сообщений: 894
28.07.2016, 15:34  [ТС] #9
Я не знаю как это сделать в блокноте.
Пробывал UTF8 юНИКОД С ЮНИКОДОМ БАТНИК ОТКРЫВАЕТСЯ И Закрывается но ничего не происходит.
0
sov44
1758 / 742 / 127
Регистрация: 09.04.2011
Сообщений: 1,313
28.07.2016, 16:01 #10
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Я не знаю как это сделать в блокноте.
http://www.cyberforum.ru/cmd-bat/thread738351.html
0
Alexandr_7
15 / 3 / 2
Регистрация: 29.12.2015
Сообщений: 894
28.07.2016, 17:04  [ТС] #11
Bash
1
for /f "delims=" %%a in ('dir /b /s /a-d "Win32\Debug\*.*" 2^>nul') do if /i not "%%~xa"==".ini" del /f /q "%%a"
Сделал как написоно через n++
Но проблема в том что этф функция стирает файлы не только в папке но и в подкаталогах что мне категорически не нужно!
Я вроде бы с самого начала говорил это!
0
sov44
1758 / 742 / 127
Регистрация: 09.04.2011
Сообщений: 1,313
28.07.2016, 17:09 #12
Alexandr_7, пробуйте
Windows Batch file
1
for /f "delims=" %%a in ('dir /b /a-d "Win32\Debug\*.*" 2^>nul') do if /i not "%%~xa"==".ini" del /f /q "Win32\Debug\%%a"
0
Alexandr_7
15 / 3 / 2
Регистрация: 29.12.2015
Сообщений: 894
28.07.2016, 17:17  [ТС] #13
%%a ,будет содержать полное имя файла так что не думаю что получится что либо
0
Smitis
1628 / 337 / 39
Регистрация: 15.10.2012
Сообщений: 529
01.08.2016, 19:41 #14
Можно поиграть с атрибутом "только для чтения". Допустим, оставить только *.ini
Windows Batch file
1
2
3
attrib +r *.ini
del /q *.*
attrib -r *.ini
0
alpap
1364 / 1095 / 348
Регистрация: 26.04.2015
Сообщений: 3,916
02.08.2016, 00:13 #15
Windows Batch file
1
2
3
4
@echo off
>nul chcp 1251
for /f "delims=" %%a in ('dir/a-d/b "papka"^|find/v ".ini"') do del/q "papka\%%a"
pause
0
utkabobr
0 / 0 / 0
Регистрация: 09.07.2015
Сообщений: 15
07.08.2016, 19:05 #16
Ну а что если:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
setlocal enableextensions enabledelayedexpansion
set name=DONOTDELETE.txt
set folder=ПАПКА
pushd !folder!
for /F "tokens=*" %%a in ('dir /b !folder!') do (
if not "%%~a"=="%name%" (
echo DEL %%a
del %%a
)
)
popd
pause
exit /b
0
Alexandr_7
15 / 3 / 2
Регистрация: 29.12.2015
Сообщений: 894
07.08.2016, 19:14  [ТС] #17
Цитата Сообщение от utkabobr Посмотреть сообщение
Ну а что если:
Мне вообще не нужно вводить никаких данных. Впрочем вроде решения данного батника отпало. Легче через паскаль будет написать.
0
utkabobr
0 / 0 / 0
Регистрация: 09.07.2015
Сообщений: 15
07.08.2016, 19:42 #18
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Мне вообще не нужно вводить никаких данных. Впрочем вроде решения данного батника отпало. Легче через паскаль будет написать.
Нет, вы не поняли, set /p это запрос(ввод) данных, а set это статичная переменная, просто для упрощения, вы просто должны только заменить эти переменные
0
07.08.2016, 19:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2016, 19:42
Привет! Вот еще темы с решениями:

Копировать из текущего каталога в указанный каталог все файлы с расширением .txt кроме одного указанного
Написать командный файл, который будет копировать из текущего каталога все...

Удалить все файлы, кроме первого, последнего и каждого 10-го между ними
Здравствуйте. Есть список каталогов на одном уровне (имена ПК), там...

Копировать из текущего каталога все файлы с расширением .txt, кроме одного заданного файла, в заданный каталог
Доброго времени суток, помогите, пожалуйста с решением задачки) Написать...

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


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

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

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