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

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

Ответить
Настройки темы
Любой язык - [решено] изменить числа в bat файлах заданным пользователем

Ветеран


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

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


Здравствуйте, есть папка с bat файлами.. вот пример одного из них:

Код: Выделить весь код
@echo off
 
setlocal
chcp 1251>nul
 
set quantity=20
set "source=C:\work\POSTS\01 start.txt"
set "destination=C:\work\Scripts\Create random posts\posts\01 start.txt"
set "border=//=================="
 
set "temp_file=%temp%\%random%.vbs"
for /f %%i in ('findstr /rx "%border:/=\/%" "%source%"^| find /c /v ""') do (
 for /f %%j in ('set /a %%i-1') do if %%j lss %quantity% (call:# %%j %%j) else (call:# %%j %quantity%)
)
del "%temp_file%"
 
endlocal
exit /b
 
 
:#
 for /l %%i in (1 1 %1) do call set $%%random%%= %%i
 for /f "tokens=* delims=$0123456789=" %%i in ('set $') do (
  set /a count+=1& for /f %%j in ('set /a count') do if %%j leq %2 (
   >"%temp_file%" (echo WScript.StdOut.Write(Split(WScript.CreateObject("Scripting.FileSystemObject"^)_
                   echo .OpenTextFile("%source%"^).ReadAll(^),"%border%"^&vbCrLf^)(%%i^)^))
   >>"%destination%" (cscript //nologo "%temp_file%"& cmd /v /c echo.!border!)) else exit /b
 )
 
 exit /b
необходим скрипт (на bat или powershell), который при запуске будет спрашивать число, которое я должен ввести.. а после ввода, прописать это число во всех bat файлах (папку с bat файлами и тоже должен задать).... Прописать это число нужно в выделенной мной строчке, в коде.
Код: Выделить весь код
set quantity=20
т.е. к примеру если мы указываем число 40, то эта строчка должна стать такой:
Код: Выделить весь код
set quantity=40

Отправлено: 13:25, 24-10-2021

 

Ветеран


Contributor


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

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


Alexander_88, Организуйте текстовый ini-файл, который можете править любым редактором, например
"Z:\Box_In\quantity.ini" (там нарисуете Ваше число). Либо организуете батник,который при запуске будет спрашивать число, которое надо ввести.. а после ввода, запишет его в этот ini-файл.
В батниках один раз замените
set quantity=40
на
Set /P quantity=<"Z:\Box_In\quantity.ini"
Например:
Код: Выделить весь код
@Echo Off
cls
	Set /P quantity=<"Z:\Box_In\quantity.ini"
Echo %quantity%
pause
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 14:32, 24-10-2021 | #2



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

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


Ветеран


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

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


Цитата Alexander_88:
прописать это число во всех bat файлах (папку с bat файлами и тоже должен задать).... Прописать это число нужно в выделенной мной строчке, в коде. »
Не надо. Никогда так не делайте. Используйте либо параметры пакетного файла, либо метод, предложенный выше коллегой megaloman.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:52, 24-10-2021 | #3


Ветеран


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

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


megaloman, Iska, спасибо за ответы, попробую использовать сегодня-завтра

Отправлено: 16:54, 24-10-2021 | #4


Ветеран


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

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


Код: Выделить весь код
@Echo Off
cls
	Set /P quantity=<"Z:\Box_In\quantity.ini"
Echo %quantity%
pause
Exit /B
мне пишет такое при запуске
Режим вывода команд на экран (echo) отключен

Отправлено: 17:12, 24-10-2021 | #5


Ветеран


Contributor


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

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


Alexander_88, Вы свой путь к файлу прописали вместо "Z:\Box_In\quantity.ini"? Вообще Вы его создали?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 18:43, 24-10-2021 | #6


Ветеран


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

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


megaloman, да, вот код:

Код: Выделить весь код
@Echo off
cls
	Set /P quantity=<"C:\work\Scripts\Create random posts\quality posts.ini" 
Echo %quantity%
pause
Exit /B
Если файл quality posts.ini пустой, то ошибка та, которую я писал … если в этом файле указать к примеру число 0, то появляется вот такое:
Код: Выделить весь код
0
Для продолжения нажмите любую клавишу . . .
но сам скрипт не предлагает ввести цифру, ее нужно в ini файле вводить

Отправлено: 21:09, 24-10-2021 | #7


Ветеран


Contributor


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

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


Цитата megaloman:
Alexander_88, Организуйте текстовый ini-файл, который можете править любым редактором, например
"Z:\Box_In\quantity.ini" (там нарисуете Ваше число). Либо организуете батник,который при запуске будет спрашивать число, которое надо ввести.. а после ввода, запишет его в этот ini-файл. »
Естественно
Цитата Alexander_88:
сам скрипт не предлагает ввести цифру, ее нужно в ini файле вводить »
Это всего лишь пример, как изменить ваши батники.
Если настаиваете, вот батник для ввода (имхо, текстовым редактором это делать проще)
Код: Выделить весь код
@Echo off
cls
	Set /A Min=10, Max=60
	Set "FileIni=C:\work\Scripts\Create random posts\quality posts.ini" 
	:Begin
		Set /P "quantity=Input quantity. %Min%<=quantity<=%Max% =" 
		If %Min% LEQ %quantity% If %quantity% LEQ %Max% (>"%FileIni%" Echo %quantity%& Exit /B)
		Echo Wrong quantity=%quantity%
		GoTo :Begin
Exit /B
Для контроля укажите возможные минимальное и максимальное значение и путь к ини-файлу.
Потом Ваши изменённые батники это значение подставят.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 24-10-2021 в 21:49.

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

Отправлено: 21:43, 24-10-2021 | #8


Ветеран


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

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


спасибо, все работает

Отправлено: 10:02, 25-10-2021 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - Замена строки в файлах на powershell или bat sap87@vk Скриптовые языки администрирования Windows 11 04-10-2019 16:58
CMD/BAT - (CMD/BAT) запуск нескольких программ под каждым пользователем из .txt файла Stydents Скриптовые языки администрирования Windows 1 05-08-2019 15:21
Разное - Esc-последовательности в BAT-файлах (ansi.sys) AndreyY89 Microsoft Windows 2000/XP 8 16-03-2012 07:05
[решено] Переход к странице с заданным пользователем именем Котяра Вебмастеру 4 17-06-2008 13:14
CMD/BAT - [решено] Кириллица в cmd и bat файлах vagner_HATE Скриптовые языки администрирования Windows 4 05-04-2005 15:55




 
Переход