Войти

Показать полную графическую версию : [решено] Добавить возможность закрытия скрипта при отсутствии нужных файлов


krokradio
04-03-2016, 14:36
Есть у меня скрипт удаления файлов по маске (нашел где-то на форуме, подправил под себя)
@echo off
SetLocal EnableExtensions

set mask=*_00.alb
set folder=E:\Air\pool

set /a n=0, c=0
for /f "delims=" %%f in ('dir /b /s /a-d "%folder%\%mask%"') do set /a c+=1& del /f /a "%%f" && set /a n+=1

exit /b

Проблема в том, что этот скрипт у меня прописан в запуске каждые 10 минут. Если он находит файлы с нужной маской - он корректно отрабатывает и закрывается. Если же в папке таких файлов нету - командная строка остается висеть с сообщением, что файл не найден.
Что нужно добавить в этот скрипт, что б он не найдя нужных файлов просто закрывался?

Elven
04-03-2016, 14:43
Проверку на наличие нужных файлов.
@echo off
SetLocal EnableExtensions

set mask=*_00.alb
set folder=E:\Air\pool

if exist %folder%\%mask% (
set /a n=0, c=0
for /f "delims=" %%f in ('dir /b /s /a-d "%folder%\%mask%"') do set /a c+=1& del /f /a "%%f" && set /a n+=1
) else (
exit /b)

exit /b

Iska
04-03-2016, 14:45
set mask=*_00.alb
set folder=E:\Air\pool

2>nul del /f /q /s /a "%folder%\%mask%"

krokradio
04-03-2016, 14:52
Ндяс... элементарно. Достаточно вспомнить, что пытались вдолбить в голову учителя информатики 20 лет назад ))). Спасибо.

krokradio
04-03-2016, 15:08
Еще вместо exit /b нужно было оставить просто exit что б командная строка закрывалась

megaloman
04-03-2016, 15:46
krokradio,
Iska несомненно привёл наиболее эффективное решение для удаления файлов по маске, но у Вас под циклом еще какие-то действия, я не анализирую их назначение, однако Если же в папке таких файлов нет, то ситуацию, наверное, можно купировать так:for /f "delims=" %%f in ('dir /b /s /a-d "%folder%\%mask%" 2^>nul') do set /a c+=1& del /f /a "%%f" && set /a n+=1

Iska
04-03-2016, 15:57
megaloman, навряд ли:
нашел где-то на форуме, подправил под себя »
Так что, скорее всего, остатки «того» пакетного файла.




© OSzone.net 2001-2012