Исходя из моего опыта работы со скриптами пакетных файлов, если он завершается, даже если у вас есть ПАУЗА, которая должна получить удар, это означает, что есть ошибка, которая вызывает его сбой.
В этом случае я думаю, что это несколько проблем с синтаксисом, а также как вы устанавливаете переменную.
Я поиграл и получил это на работу:
@ECHO off
FOR /f "delims=" %%a in ('POWERCFG -GETACTIVESCHEME') DO @SET _CURRENT_POWER_SCHEME="%%a"
IF NOT %_CURRENT_POWER_SCHEME%=="Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (Balanced)" POWERCFG -SETACTIVE "381b4222-f694-41f0-9685-ff5bb260df2e"
Строка «For /f ...» обычно является командой, которую я использую, чтобы получить выходные данные другой команды в переменную. Обычно он предназначен для анализа более сложных ответов, но в этом случае он обрабатывает команду -GETACTIVE. Для получения дополнительной информации о синтаксисе цикла (или синтаксисе пакета в целом): http://ss64.com/nt/for_f.html