Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2020, 21:42   #1
MarkAPolo
 
Регистрация: 12.05.2020
Сообщений: 5
По умолчанию bat CMD. нужна помощь с батником

Здравствуйте!

я нуб в программировании, только начинаю осваивать, помогите с батником,знаю на форуме есть кодеры, это с криптой не связано
условие:
Есть .exe генератор работающий только в командной строке, он генерирует строку текста за 1 запуск программы
нужно написать батник, запускающий в командной строке генератор циклично,
после запуска и генерации 100 строк, результат нужно записать в файл .txt в папку Pages с именем например 1, следующий файл с результатами новых 100 строк в файл 2, и т.д.

т.е. идёт цикл генерации 100 строк и запись в .txt, далее очистка окна командной строки и повторение, можно конечно реализовать через тасккил и новый запуск cmd

Написал следующий скрипт:

Код:
@echo off
:n
n=%0
:start
start cmd /k C:\Generator\Generator.exe -v 1
shift n
if n=%100 goto Print
not (%100) goto start
:print
>1.txt C:\Generator\Pages
Cls
goto n
pause
Ещё не понял как сделать так, чтобы нумерация сохраняемых .txt шла порядковая

куча ошибок,я понимаю, поэтому и прошу помочь.
текущий код запускает окно cmd и генератор, только один раз, сохранение не работает.

генератор может работать нон-стоп с одного запуска, может можно настроить вывод данных в файл через интервал например 1 минута, только чтобы в разные файлы сохранялся вывод?

Код:
@echo off
SET FILE=0
:start
%FILE%=%FILE%+1
SET %N%=0
:n
Generator.exe 1 >> %FILE%.txt
%N% = %N%+%1%
if "%N%" EQU "100" goto start
goto n
pause
вот другой вариант, есть тоже ошибка:
"+" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом."
сгенерированные строки строки сохраняются в файл 0.txt, но проблема в том что после генерации и сохранения 100 строк, не создаётся новый txt с именем 1, 2, 3 и т.д. При этом сохранение каждой строки в txt происходит сразу после генерации, наверно из-за этого программа иногда зависает.
попробовал по-другому:
Код:
@echo off
SET FILE=0
:start
Cls
%FILE%=%FILE%+1
SET %N%=0
:n
%N%=%N%+1
Generator.exe 1
if "%N%" LSS "5" goto n
if "%N%" EQU "5" 
>> %FILE%.txt
goto start
pause
снова ругается ""+" не является внутренней или внешней",
программа теперь очень редко крашится, но теперь она не сохраняет вообще данные в txt!(

Последний раз редактировалось MarkAPolo; 13.05.2020 в 03:10.
MarkAPolo вне форума Ответить с цитированием
Старый 13.05.2020, 15:30   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,378
По умолчанию

1. Для изменения значения переменной следует использовать конструкцию:
Код:
rem /a - выполнение арифметических операций
rem set myvar=1 - создать переменную и присвоить её 1.
rem 1 - это символ, а не число
rem %myvar% - содержимое переменной 
set /a myvar=%myvar%+1
2. Для отправки значения в файл следует использовать символ направления потока
> - отправить в файл. Если файл существовал, то перезаписать.
>> - отправить в файл. Если файл существовал, то добавить.
Пример формирования числового имени файла
Код:
@echo off
chcp 1251
echo Формируются числа из диапазона: 000 -:- 999.
echo Следующий номер сохранить в файле Number.txt.
echo Если такого файла нет, то счет начать с 000
echo и создать файл Number.txt.
echo После номера 999 следует 000.
echo.
set SDIG=000
rem Если в текущей папке есть файл Nomer.txt,
rem то получить значение из файла в SDIG
if exist Nomer.txt (set /p SDIG=<Nomer.txt)
rem Увеличить число на единицу
set /A SDIG=1%SDIG%+1
rem оставить только три последние цифры
set SNR=%SDIG:~-3%
rem Новое значение сохранить в файле Nomer.txt
echo %SNR%>Nomer.txt
rem SNR использовать для формирования имени файла
echo Пример: file%SNR%.txt
echo > file%SNR%.txt
pause
Тут новое имя формируется при каждом запуске скрипта.
Отсюда можно взять нужную часть для последовательной генерации номеров.
Если нужны задержки, то я пользовался написанным мной скриптом на VBS.
В командной строке надо просто указать имя исполняемого файла Delay.vbs с параметрами.
Файл во вложении (смени расширение на vbs).
3. Для слияния значений переменных следует просто прописать их значения рядом:
Код:
set myvar1=Masha
set myvar2=Sveta
echo %myvar1% + %myvar2% = Подруги
Дерзай!

PS: Power Shell вам в руки. Это посвежее.
Вложения
Тип файла: txt Delay.txt (1.4 Кб, 0 просмотров)
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 13.05.2020, 17:12   #3
MarkAPolo
 
Регистрация: 12.05.2020
Сообщений: 5
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
1. Для изменения значения переменной следует использовать конструкцию:
...
Большое Вам спасибо за помощь!
MarkAPolo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь с батником Alkatras Помощь студентам 4 18.02.2014 10:57
Копирование батником DrBAXA Windows 3 02.05.2013 11:33
проблема с батником xxdredxx Помощь студентам 3 04.05.2011 17:52
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12