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

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

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

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

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

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

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

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

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

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
Сообщений: 1,013
28.07.2016, 14:03  [ТС] 3
Да пробовал но все попытки заканчивались неудачей.
Может кто вышлет батник. Хотябы посмотрю что я не так делаю. Кучу вариантов перепробьывал. Самый простой
Bash
1
for %%i in "Win32\Debug\*.*" do if not %%i  == "*.ini" del %%i
0
sov44
1758 / 742 / 128
Регистрация: 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
Сообщений: 1,013
28.07.2016, 14:17  [ТС] 5
Что за фигня. Путь и имя верное у найти не может хотя файлы там есть
0
Миниатюры
Удалить все файлы, кроме одного  
sov44
1758 / 742 / 128
Регистрация: 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
Сообщений: 1,013
28.07.2016, 14:39  [ТС] 7
Но тут даже включая атрибуты должен файл удалятся тоесть удалятся он должен в любом случае
Ведь файлы неизвестны. Могу лишь сказать что эти файлы создает язык прграммирования и иногда случается ошибка в результате которой нужно удалить все файлы как и временные так и после компиляции и очистеть папку TEMP
Так что вот.
0
Миниатюры
Удалить все файлы, кроме одного  
sov44
1758 / 742 / 128
Регистрация: 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
Сообщений: 1,013
28.07.2016, 15:34  [ТС] 9
Я не знаю как это сделать в блокноте.
Пробывал UTF8 юНИКОД С ЮНИКОДОМ БАТНИК ОТКРЫВАЕТСЯ И Закрывается но ничего не происходит.
0
sov44
1758 / 742 / 128
Регистрация: 09.04.2011
Сообщений: 1,313
28.07.2016, 16:01 10
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Я не знаю как это сделать в блокноте.
Русский текст в консоли
0
Alexandr_7
15 / 3 / 2
Регистрация: 29.12.2015
Сообщений: 1,013
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 / 128
Регистрация: 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
Сообщений: 1,013
28.07.2016, 17:17  [ТС] 13
%%a ,будет содержать полное имя файла так что не думаю что получится что либо
0
Smitis
1629 / 338 / 39
Регистрация: 15.10.2012
Сообщений: 530
01.08.2016, 19:41 14
Можно поиграть с атрибутом "только для чтения". Допустим, оставить только *.ini
Windows Batch file
1
2
3
attrib +r *.ini
del /q *.*
attrib -r *.ini
0
alpap
1461 / 1176 / 383
Регистрация: 26.04.2015
Сообщений: 4,146
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
Сообщений: 1,013
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

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

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

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


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

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

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