С помощью setenv вы можете установить переменные для текущего процесса, а cmd.exe
- это другой родительский элемент. Вы не можете изменить env родительского процесса без хаков. Вам, вероятно, следует переписать скрипт, чтобы поместить необходимые set ENV=VALUE
строки во временный пакетный файл, а затем вызвать его.
<?php
$config = json_decode(file_get_contents('tmp/config.json'), true);
$tmpBatch = fopen('tmp/setenv.bat', 'w');
foreach ($config[$argv[1]] as $segment=>$details){
fwrite($tmpBatch, "set targetFolder=$segment");
fwrite($tmpBatch, "set targetLink=$details[link]");
}
fclose($tmpBatch);
И затем
php\php.exe install.php
call tmp\setenv.bat