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

Ответить
Аватара пользователя
Alexander_88

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

Сообщение Alexander_88 »

Здравствуйте, есть папка с 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

Изображение
Аватара пользователя
megaloman

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

Сообщение megaloman »

Alexander_88, Организуйте текстовый ini-файл, который можете править любым редактором, например

"Z:\Box_In\quantity.ini" (там нарисуете Ваше число). Либо организуете батник,который при запуске будет спрашивать число, которое надо ввести.. а после ввода, запишет его в этот ini-файл.

В батниках один раз замените

set quantity=40

на

Set /P quantity=

Код: Выделить всё

@Echo Off
cls
	Set /P quantity=<"Z:\Box_In\quantity.ini"
Echo %quantity%
pause
Exit /B
Аватара пользователя
Iska

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

Сообщение Iska »

Цитата Alexander_88:



прописать это число во всех bat файлах (папку с bat файлами и тоже должен задать).... Прописать это число нужно в выделенной мной строчке, в коде.
Любой язык - [решено] изменить числа в bat файлах заданным пользователем




Не надо. Никогда так не делайте. Используйте либо параметры пакетного файла, либо метод, предложенный выше коллегой megaloman.
Аватара пользователя
Alexander_88

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

Сообщение Alexander_88 »

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

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

Сообщение Alexander_88 »

Код:

Код: Выделить всё

@Echo Off
cls
	Set /P quantity=<"Z:\Box_In\quantity.ini"
Echo %quantity%
pause
Exit /B

мне пишет такое при запуске

Режим вывода команд на экран (echo) отключен
Аватара пользователя
megaloman

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

Сообщение megaloman »

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

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

Сообщение Alexander_88 »

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 файле вводить
Аватара пользователя
megaloman

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

Сообщение megaloman »

Цитата megaloman:



Alexander_88, Организуйте текстовый ini-файл, который можете править любым редактором, например

"Z:\Box_In\quantity.ini" (там нарисуете Ваше число). Либо организуете батник,который при запуске будет спрашивать число, которое надо ввести.. а после ввода, запишет его в этот ini-файл.
Любой язык - [решено] изменить числа в bat файлах заданным пользователем




Естественно
Цитата Alexander_88:



сам скрипт не предлагает ввести цифру, ее нужно в ini файле вводить
Любой язык - [решено] изменить числа в bat файлах заданным пользователем




Это всего лишь пример, как изменить ваши батники.

Если настаиваете, вот батник для ввода (имхо, текстовым редактором это делать проще)

Код:

Код: Выделить всё

@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

Для контроля укажите возможные минимальное и максимальное значение и путь к ини-файлу.

Потом Ваши изменённые батники это значение подставят.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»