Хочу написать bat файл, который в json файле находит логин, пароль и домен пользователя, а затем записывает их в локальные переменные и запускает программу с определенными правами. Формат в котором заданы логин и пароль самый простой
"Login": "login",
"Password": "password"
Написал следующий скрипт. Логин определяет корректно, однако при определении пароля и домена, после выполнения цикла for им присваиваются булевые значения.
Последовательно выводятся следующие строки
set password="password",
set password=false,
Запятая здесь сохраняется из json файла. С чем это может быть связано? Впервые появилась потребность написать что-то в cmd, так что не судите строго за код. Знаю, есть готовые решения по парсингу json файлов из cmd и powershell, но не хочу вводить дополнительные зависимости, так как запускать буду не на своем компьютере.
echo on
:: Search for login
set login
FOR /F "tokens=2 delims= " %%i IN ('findstr Login configuration.json') DO ( set login=%%i )
set login=%login:~1,-3%
echo %login%
:: Search for password
set password
FOR /F "tokens=2 delims= " %%j IN ('findstr Password configuration.json') DO ( set password=%%j )
set password=%password:~1,-3%
echo %password%
:: Search for Domain
set domain
FOR /F "tokens=2 delims= " %%k IN ('findstr Domain configuration.json') DO ( set domain=%%k )
set domain=%domain:~1,-3%
echo %domain%
if not defined login (
if not defined password (
%~dp0application.exe
) else (
echo %password% | runas /user:%domain%\%login% %~dp0application.exe
)
) else (
echo %password% | runas /user:%domain%\%login% %~dp0application.exe
)
pause