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

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

Ответить
Настройки темы
CMD/BAT - переменная меняется внутри цикла for, последовательно принимая значения имен файлов

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


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

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


cd E:\log
setlocal enabledelayedexpansion
set list=
for %%i in (*) do set list=!list! %%i
echo %list%
set list >>E:\1.txt

а вот уже set aa=%list:~0,1%
не работает

Отправлено: 16:26, 11-11-2014

 

Ветеран


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

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


islily, приведите полный код, поскольку непонятно, в каком месте кода
Цитата islily:
set aa=%list:~0,1%
не работает »
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:17, 11-11-2014 | #2



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

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


Ветеран


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

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


Цитата islily:
а вот уже set aa=%list:~0,1%
не работает »
Делайте аналогично:
Код: Выделить весь код
set aa=!list:~0,1!
Либо обходным путём:
Код: Выделить весь код
call set aa=%%list:~0,1%%
Update: и, да — присоединюсь к коллеге Georgio: приводите полный код.

Последний раз редактировалось Iska, 11-11-2014 в 21:40. Причина: Исправил описку, указанную коллегой Georgio: «%…%» → «%% … %%»

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

Отправлено: 17:22, 11-11-2014 | #3


Ветеран


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

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


Цитата Georgio:
Iska, если внутри цикла, то сработают только конструкции с удвоенными знаками процента:
Код: Выделить весь код
call set aa=%%list:~0,1%%
и аналогичные ей. »
Угу. Это я описался. Спасибо, что заметили, поправил.

Отправлено: 21:39, 11-11-2014 | #4


Ветеран


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

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


Iska, я тоже поправил...

Отправлено: 22:05, 11-11-2014 | #5


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


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

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


Изображения
Тип файла: jpg Задание.JPG
(64.8 Kb, 16 просмотров)

вот

Последний раз редактировалось islily, 14-11-2014 в 07:56.


Отправлено: 11:00, 12-11-2014 | #6


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


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

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


Iska, Georgio, выше написала на каком этапе я не могу продолжить написание батника
Решение будет состоять из 3х батников, 1.bat определяет каким днем должны быть-> от сегодняшнего - 3 дня и от сегодняшнего - месяц -3дня, 2.bat должен работать с папкой с логами, определить что архивировать, как архивировать и куда. 3.bat должен просто выполнить первые 2 батника и удалить txt кот создавались ими (не обяз-но).

Последний раз редактировалось islily, 12-11-2014 в 11:30.


Отправлено: 11:18, 12-11-2014 | #7


Ветеран


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

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


islily, а что Вы хотите получить с помощью "1.bat" и "2.bat"?

Приведите желаемые результаты в том же виде, в каком Вы их хотите видеть по завершении работы этих пакетных файлов (то есть желаемое содержимое файла "1.txt" в обоих случаях).

Отправлено: 13:41, 12-11-2014 | #8


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


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

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


Georgio, чтобы понять каков результат должен быть, нужно прочитать задание, кот я прикрепила
1.txt я для самопроверки сделала.
1.bat я его сделала до конца, там он определяет с каким днем нужно сравнивать лог файлы в папке в зависимости от сегодняшнего дня %date%. Сравнение идет по двум условиям 1) не прошел месяц 2) прошло более месяца И там и там не берем файлы за последние 3 дня. И сделала эти переменные форматом yyyymmdd
2.bat не могу сделать. Т.к это множество лог файлов %list% нужно перебрать и сделать переменные aa=%list%:~0.8 чтобы они были тоже фотматом yyyymmdd. И затем эту переменную сравнивать. Если название лога yyyymmdd (из 2.bat)> yyyymmdd (из 1.bat), то архивируй в один файл и переписаны в другой каталог

E:\log
20141112.log
20141111.log
20141110.log
.........

Последний раз редактировалось islily, 12-11-2014 в 14:49.


Отправлено: 14:36, 12-11-2014 | #9


Ветеран


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

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


islily, для создания архива файлов определённого временного диапазона посмотрите в сторону ключей -to, -tn архиватора rar

Отправлено: 14:49, 12-11-2014 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Переменная внутри цикла VAbramyak Скриптовые языки администрирования Windows 9 06-06-2014 15:59
CMD/BAT - Переменная из цикла ntro123 Скриптовые языки администрирования Windows 2 23-02-2014 16:25
CMD/BAT - [решено] %errorlevel% внутри цикла всегда 0 apozlevich Скриптовые языки администрирования Windows 5 22-11-2013 18:55
Delphi - Переменная цикла и UInt64 novashdima Программирование и базы данных 12 12-02-2013 19:50
CMD/BAT - [решено] Условия внутри цикла for blackmane Скриптовые языки администрирования Windows 4 02-08-2012 10:01




 
Переход