Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удалить файлы

Ответить
Настройки темы
CMD/BAT - [решено] Удалить файлы

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Нужно удалить в папке все файлы в названии которых только 2 символа и которые имеют любое расширение

Отправлено: 20:27, 28-09-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Попробуйте так:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (
	`2^>nul dir /b /a:-d "*.*"`
) do for /f "usebackq delims=" %%j in (
	`echo %%~ni^| findstr.exe /b /e /r /c:".."`
	) do echo del /f /q "%%~i"
)

endlocal
exit /b 0
Для реального удаления уберите echo.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:16, 28-09-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2733
Благодарности: 1698

Профиль | Отправить PM | Цитировать


Iska, не догоняю, почему нельзя
Del d :\papka\??.*
Потому, что alpap разъяснил: 1 тоже сожрет ...

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 29-09-2018 в 02:31.


Отправлено: 01:22, 29-09-2018 | #3


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата megaloman:
почему нельзя »
Цитата ManDraka:
только 2 символа »
Цитата megaloman:
d :\papka\??.* »
1 тоже сожрет ...
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:25, 29-09-2018 | #4


Ветеран


Contributor


Сообщения: 2733
Благодарности: 1698

Профиль | Отправить PM | Цитировать


Еще вариант
Код: Выделить весь код
@Echo Off
cls
SetLocal EnableExtensions EnableDelayedExpansion

Set "Files=Z:\Box_In\??.*"

FOR %%f IN ("%Files%") DO (
	Set "Name=%%~nf"
	If Not "!Name:~1,1!"=="" Echo Del "%%f"
	If Not "!Name:~1,1!"=="" If "!Name:~2,1!"=="" Echo Del "%%f"
)
pause
GoTo :Eof
Для боевого применения убрать Echo

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 29-09-2018 в 12:02.


Отправлено: 02:44, 29-09-2018 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Потому, что alpap разъяснил: 1 тоже сожрет ... »
Да, именно так — под маску ?? попадут и файлы с длиной имени в один символ.

Цитата megaloman:
Еще вариант »
Увы, тут под маску попадут файлы такого вида:
Код: Выделить весь код
12.34.txt
56.7890.txt
ab.cdefgh.txt
Другая опасность использования масок из ? — например, под маску с восемью ? попадут почти все файлы, если разрешено создание коротких имён формата 8.3 (кроме вторичных жёстких ссылок, для которых короткие имена не создаются).
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:10, 29-09-2018 | #6


Ветеран


Contributor


Сообщения: 2733
Благодарности: 1698

Профиль | Отправить PM | Цитировать


Iska, исправил
Код: Выделить весь код
@Echo Off
cls
SetLocal EnableExtensions EnableDelayedExpansion

Set "Files=Z:\Box_In\??.*"

FOR %%f IN ("%Files%") DO (
	Set "Name=%%~nf"
	If Not "!Name:~1,1!"=="" If "!Name:~2,1!"=="" Echo Del "%%f"
)
pause
GoTo :Eof

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:00, 29-09-2018 | #7


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1232
Благодарности: 515

Профиль | Отправить PM | Цитировать


Цитата Iska:
Увы »
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion
set "fld=test"
pushd "%fld%"
for /f "delims=" %%i in ('dir /b/a-d ">>.<"') do (
	set "var=%%~ni"
	set "tmp=!var:~1!"
	if defined tmp echo %%~i
)
popd
pause

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:07, 29-09-2018 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


YuS_2, ну-ка, рассказывайте, что дают > и < в маске?

Отправлено: 12:18, 29-09-2018 | #9


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1232
Благодарности: 515

Профиль | Отправить PM | Цитировать


Цитата Iska:
ну-ка, рассказывайте, что дают > и < в маске? »
Чтобы не перепечатывать кучу текста:
ссылка

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:22, 29-09-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удалить файлы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
FreeBSD - Не могу удалить файлы dislike Общий по FreeBSD 19 21-08-2017 17:54
SSD - Удалить файлы безвозвратно Arxon4ik Накопители (SSD, HDD, USB Flash) 12 08-07-2015 20:10
удалить лишние файлы binders Вебмастеру 3 29-09-2011 17:50
Удалить файлы, шифрование ManHack Мобильные ОС, смартфоны и планшеты 2 27-09-2010 18:28
Установка - Какие файлы можно удалить? Артур3300 Microsoft Windows Vista 15 16-02-2008 00:06




 
Переход