Войти

Показать полную графическую версию : [решено] изменить числа в bat файлах заданным пользователем


Alexander_88
24-10-2021, 13:25
Здравствуйте, есть папка с 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
24-10-2021, 14:32
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

Iska
24-10-2021, 15:52
прописать это число во всех bat файлах (папку с bat файлами и тоже должен задать).... Прописать это число нужно в выделенной мной строчке, в коде. »
Не надо. Никогда так не делайте. Используйте либо параметры пакетного файла, либо метод, предложенный выше коллегой megaloman.

Alexander_88
24-10-2021, 16:54
megaloman, Iska, спасибо за ответы, попробую использовать сегодня-завтра

Alexander_88
24-10-2021, 17:12
@Echo Off
cls
Set /P quantity=<"Z:\Box_In\quantity.ini"
Echo %quantity%
pause
Exit /B

мне пишет такое при запуске
Режим вывода команд на экран (echo) отключен

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

Alexander_88
24-10-2021, 21:09
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
24-10-2021, 21:43
Alexander_88, Организуйте текстовый ini-файл, который можете править любым редактором, например
"Z:\Box_In\quantity.ini" (там нарисуете Ваше число). Либо организуете батник,который при запуске будет спрашивать число, которое надо ввести.. а после ввода, запишет его в этот ini-файл. »Естественносам скрипт не предлагает ввести цифру, ее нужно в 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
Для контроля укажите возможные минимальное и максимальное значение и путь к ини-файлу.
Потом Ваши изменённые батники это значение подставят.

Alexander_88
25-10-2021, 10:02
спасибо, все работает :)




© OSzone.net 2001-2012