YuS_2
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору thejustsoul 22-03-2017 Цитата: не хочется использовать что-то внешнее, если можно обойтись имеющимися возможностями | Цитата: 1. В переменные надо получить хеш, урл и имя дистрибутива, в "Вывод скрипта" добавил же что должно быть -) 2. Наверно одинаковые, но кто их знает, могут и поменять потом. 3. Наверно всегда, но если их нет, то это надо обрабатывать вручную (тут это не нужно учитывать). | Вопросы были не от праздного любопытства... Дело в том, что в cmd парсить json не совсем продуктивно и если вдруг там изменится состав параметров, либо порядок следования, то весь код псу под хвост пойдет... а если есть ещё и спецсимволы в строке, то тоже та ещё радость... А так, что-то более универсальное, можно так сделать: Код: @echo off for /f "tokens=1-3 delims=," %%a in ( 'powershell -executionpolicy bypass .\script.ps1' ) do set "opHash=%%a"&set "opUrl=%%b"&set "opDist=%%c" setlocal enabledelayedexpansion echo hash - "!opHash!" echo url - "!opUrl!" echo dist - "!opDist!" pause | script.ps1 : Код: gc test.json|%{ $a = $_ -replace '^.*?installer_checksum\"?:\"?([0-9a-f]+).*','$1' $b = $_ -replace '^.*?installer\"?:\"?([^"]+).*','$1' $c = $_ -replace '^.*?installer_filename\"?:\"?([^"]+).*','$1' $a+","+$b+","+$c } | и вообще, пора переходить на powershell, как на более вменяемый инструмент |