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

Возможно ли выполнить определённое действие с каждым заданным файлом в текущей папке?

27.08.2012, 16:42. Просмотров 2759. Ответов 3
Метки нет (Все метки)

Возможно ли выполнить действие к файлам в текущей папке через консоль Windows?

То есть я хочу создать файл exec.bat, который при запуске уменьшает все картинки в текущей папке. То есть мне надо для каждой картинки выполнить такой код (используется ImageMagick):

Bash
1
convert img.png -resize 100 img_100px.jpg
Как это можно сделать через консоль Windows?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2012, 16:42
Ответы с готовыми решениями:

Создание в текущей папке каталогов
Мальчики помогите пожалуйста решить задачку. Сессия через неделю,не успеваю...

Циклический перебор файлов в подпапках с выполнением определённой операции с каждым файлом
Приветствую! Прошу простить если дублирую чье-то сообщение, но что-то я не...

Удалить все пустые папки в текущей папке
Удалить все пустые папки в текущей папке.

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

Сравнить дату с текущей, если ДА, выполнить действие
Здравствуйте! Хочу сравнить дату, которая заносится в переменную datetime, с...

3
Dragokas
Эксперт WindowsАвтор FAQ
17028 / 7086 / 856
Регистрация: 25.12.2011
Сообщений: 10,908
Записей в блоге: 16
27.08.2012, 21:55 2
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Bash
1
2
3
4
5
@echo off
set pict=*.png,*.jpg,*.bmp
for /f "delims=" %%i in ('dir %pict% /b /a:-d') do (
  convert %%i -resize 100 %%~ni_100px.jpg
)
1
devenge
8 / 8 / 2
Регистрация: 11.11.2011
Сообщений: 208
27.08.2012, 23:30  [ТС] 3
Впервые сталкиваюсь с циклом в консоли Windows, как я понял, данный код делает следующее. Если где-то ошибаюсь, то поправьте пожалуйста

for /f - применяет действие над каждым файлом (for /d над каждой папкой)

"delims=" - задает разделитель, здесь разделитель задан на имя файла (который обозначен %%i)

in ('dir %pict% /b /a:-d') -применить команду в директории (команда dir) над файлами, которые совпадают с set pict=*.png,*.jpg,*.bmp.

Я правильно разобрал код или как он работает?
0
Dragokas
Эксперт WindowsАвтор FAQ
17028 / 7086 / 856
Регистрация: 25.12.2011
Сообщений: 10,908
Записей в блоге: 16
12.10.2012, 01:53 4
for /f
Для каждого файла/папки/строки (в зависимости от типа данных, которые будут в скобках). Он (тип) в свою очередь определяется видом кавычек (или их отсутствием), а также модификатором UseBackq.

"delims="
Задает пустой разделитель. По-умолчанию он равен пробелу и знаку табуляции.
Т.о. в первый токен попадает вся строка (вне зависимости от наличия пробелов в пути и/или имени файла/каталога).

in ('dir %pict% /b /a:-d')
Выполнить команду dir %pict% /b /a:-d
и произвести синтаксический разбор выводимых нею данных
(по правилам, заданных предыдущими ключами/параметрами FOR).

%pict%
Подставляется значение переменной pict

dir *.png
Вывести на экран все файлы и папки в текущем каталоге, которые совпадают с заданной маской поиска (допускается разделитель - запятая)

/a:-d - исключить папки
/b - показать только имена без сопутствующей информации.

Некоторые пояснения по работе с FOR см. по ссылкам в конце темы: Литература, учебники, пособия по CMD/BAT, список команд
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2012, 01:53

Как делать действие через определённое время?
Добрый день. Есть игра «Змейка», где практически всё готово, но нужно сделать...

Каждой кнопке из массива назначить определённое действие
Как в массиве из 10 Buttons по нажатию на каждый Button выполнять разные...

Как написать программе выполнять определённое действие (функцию) перед закрытием?
В общем, как я раньше и говорил, я работаю над программой. Очень быстрой. ...


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

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

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