![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Редактирование excel`евской формулы, или тройной вложенный цикл |
|
CMD/BAT - Редактирование excel`евской формулы, или тройной вложенный цикл
|
Новый участник Сообщения: 5 |
Доброго времени суток. Есть небольшая задача.
Суть задачи в том, что имеется excel`евская формула (точнее для googlesheets). В ней, кроме всего остального, есть 4 пары чисел, которые нужно заменить по принципу n=n+1 То есть, к примеру, 345 346 347 348 на 349 350 351 352. Затем на 353 354 355 356 и т.д. И таких проходов 50. Соответственно, вручную очень даже тягостно менять 200 чисел. Утренняя задумка по автоматизации процесса немного не удалась. @echo off title Edit formuls setlocal enabledelayedexpansion set infile=inputfile.txt set TMPFL=tempfile.txt set newfile=newfile.txt set find=348 set replace=352 copy !infile! !infile!.bak copy !infile! !TMPFL! pause for /L %%i in (1,1,50) do ( for /L %%j in (1,1,4) do ( for /F "tokens=* delims=," %%n in (!TMPFL!) do ( set LINE=%%n set TMPR=!LINE:%find%=%replace%! set /A find=!find!-1 set /A replace=!replace!-1 echo !TMPR!>!TMPFL! ) ) echo !TMPR!>>!newfile! echo.>>!newfile! set /A find=!find!+7 ) cls echo Complete! pause exit Если необходимо, прикрепляю саму формулу (inputfile). =IF(A15=$Z$345; $AD$345; (IF(A15=$Z$346; $AD$346; (IF(A15=$Z$347; $AD$347; (IF(A15=$Z$348; $AD$348; (IF(A15=$AF$345; $AJ$345; (IF(A15=$AF$346; $AJ$346; (IF(A15=$AF$347; $AJ$347; (IF(A15=$AF$348; $AJ$348; 0))))))))))))))) Собственно причина его неработоспособности была найдена. В третьем цикле, переменным find и replace не присваиваются новые значения. Гугл помог только в сторону setlocal enabledelayedexpansion. Если расширенную обработку включать именно в цикле, то вываливается в превышение рекурсии. |
|
Отправлено: 11:45, 14-07-2014 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Вложенный цикл в цикле | etherlord | Скриптовые языки администрирования Windows | 4 | 27-04-2023 06:03 | |
2007 - как объединить две формулы в EXCEL | Наталья78 | Microsoft Office (Word, Excel, Outlook и т.д.) | 4 | 06-06-2020 15:16 | |
CMD/BAT - [решено] вложенный цикл for с условием if | ivanxam | Скриптовые языки администрирования Windows | 14 | 23-05-2014 21:24 | |
2013 - [решено] использование формулы ВПР в Excel | Vizit0r | Microsoft Office (Word, Excel, Outlook и т.д.) | 2 | 31-03-2013 17:33 | |
Разное - Помогите Excel формулы диапазоны | vin26com | Программирование и базы данных | 0 | 19-11-2010 17:02 |
|