Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


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

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


YuS_2,
Цитата YuS_2:
В общем, можно перейти на компромисс, гибрид cmd+powershell... »
Одна голова хорошо, а две - уродство.
boomdeamon,
Вот вариант CMD. Вычистил от извращений из-за недомыслия в постановке.
Оставил за вами организацию промежуточного файла, хотя, ИМХО, можно бы было обойтись и без него.
Код: Выделить весь код
@Echo Off
cls
	Set "KeyWord=remote result (not to be trusted):"
	Set /A N=0

	Call :@ kf-kkdY_B7p-77TLn2hUhM6QidWrrsl8FYWCIvBMpZKprBtN
	Call :@ kf8SYc83pm5JkGt0p3TQRkuiM58O9Cr3waUtR9OoFq716lN-
	Call :@ kf-FV4QTxLl-7Ct3E6MqOtMt-RGXMxi27g4I645lw6MTWraV
	Call :@ kf_NSzfDJI1A3rOM0GQm7xsoUXHTgmdhN5-OrGD8uwL2JMvQ
	Call :@ kf8gf1PQy4u2kURl-Gz4LbS29eaN4sVdrVQkPO-JL80VhOe6
	Call :@ kf8kO6K6Qh6YM4ddjRYYlvVAK7IgyW8Zet-4ZvNrVsmQ4EOF
	Call :@ kf-P_TOdwcCh0AXHhBpICDMxStxHenWdLCDLNH5QcNpwMHJ8
	Call :@ kf91o4NNTryJ-Cw3sDGt9OTiafmETdVFUMvylQdFPoOxIsLm
	Call :@ kf9iWhwk9GwAXjtwKG-vN7rmXT3hLIT23RBY6KhVaynRrIK7
	Call :@ kf8JfFUEJhhpRW80_jqD7zzQteH6EBHOzxiOhygRhBdt4z2N

	If %N%==0 (Echo !!! Данные не получены. &Exit /B 2)

	Call :Giver

	Echo. &Echo nBestGiver=%nBestGiver%  &Echo MaxComplex=%MaxComplex% &Echo BestGiver =%BestGiver%  
Pause
Exit /B

:@
	Set "OutFile=%Tmp%\%~nx0.giver"
rem	lite-client.exe -v 0 -C global.config.json -rc "runmethod %1 get_pow_params" >"%OutFile%"
	>nul Copy "Z:\Box_In\%1" "%OutFile%"

	Set "Complex="
	For /F "usebackq tokens=2 delims=[]" %%s In (`2^>nul FINDSTR /I "%KeyWord%" "%OutFile%"`) Do Call :Out "a" "Complex" "c" "d"  %%s
	If "%Complex%"=="" (Echo !!! %1 не получены данные &Exit /B 2)

	2>nul Del "%OutFile%"
	Set /A N+=1
	Set "NN=%N% " 
	Echo Giver%NN:~0,2% = %1

	Call Set "Name=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000z%%Complex%%"
	Call Set "Name=@@%%Name:~-120%%"
	Call Set "%%Name%%=%1=%N%"
Exit /B

:Out
	Set "%~1=%5" &Set "%~2=%6" &Set "%~3=%7" &Set "%~4=%8"
Exit /B

:Giver
	Echo. 
	For /F "usebackq tokens=1,2,3 delims==" %%i In (`Set "@@"`) Do (
		Set "nBestGiver=%%k"
		Set "MaxComplex=%%i"
		Call Set "MaxComplex=%%MaxComplex:*z=%%"
		Call Set "Out=                                                                                       %%MaxComplex%%"
		Set "NN= %%k" 
		Call Echo %%NN:~-2%% =%%Out:~-100%%
		Set "BestGiver=%%j"
	)
Exit /B
Естественно, я получаю данные в суррогатном отладочном варианте. В боевом варианте надо
Код: Выделить весь код
	lite-client.exe -v 0 -C global.config.json -rc "runmethod %1 get_pow_params" >"%OutFile%"
rem	>nul Copy "Z:\Box_In\%1" "%OutFile%"
Если всё же данные Вы получаете из другого CMD, я бы посоветовал его встроить в этот.

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

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

Отправлено: 16:36, 20-11-2021 | #21