problem z skryptem batch

0

Witam,
Napisałem skrypt który ma scalać procesy svchost w Windows 10 problem polega na tym ,że z nieznanego mi powodu wersja skryptu zawierająca wybór Tak \ Nie nie modyfikuje rejestru natomiast wersja która wykonuje tylko to polecenie funkcjonuje prawidłowo
wersja z wyborem :

@echo off
mode con:cols=90 lines=30
chcp 65001
color 0C

title Konfigurator systemu -  krok 12/x - Łączenie procesów Svchost
cls
echo ╔════════════════════════════════════════════════════════════════════════════════════════╗
echo ║                                                                                        ║
echo ║                         Czy system ma dokonać połączenia SVCHOST?                      ║
echo ║                                                                                        ║
echo ║                                                                                        ║
echo ║                           [1]-TAK                     [2]-NIE                          ║
echo ║                                                                                        ║
echo ║                                                                                        ║
echo ╚════════════════════════════════════════════════════════════════════════════════════════╝
choice /n /c:12 /M ""
IF %ERRORLEVEL%==1 (
cls
echo ╔════════════════════════════════════════════════════════════════════════════════════════╗
echo ║                                                                                        ║
echo ║                           Czy system ma dokonać połączenia SVCHOST?                    ║
echo ║                                                                                        ║
echo ║                                                                                        ║
echo ║                                              PRACUJĘ...                                ║
echo ║                                                                                        ║
echo ║                                                                                        ║
echo ╚════════════════════════════════════════════════════════════════════════════════════════╝

chcp 65001 >nul
for /f "tokens=4 delims= " %%i in ('systeminfo ^| findstr /C:"Total Physical Memory"') do (set mem=%%i
)
call :calc %mem%
:calc
set "mem_gb=%~1"
set /a "mem_kb=%mem_gb%*1024*1024"
reg add "HKLM\SYSTEM\ControlSet001\Control" /v "SvcHostSplitThresholdInKB" /t REG_DWORD /d "%mem_kb%" /f


	goto x
)ELSE IF %ERRORLEVEL%==2 (
	
goto x

)
:x
title Konfigurator systemu - krok 13/x - Ekran Pożegnalny
cls
echo ╔════════════════════════════════════════════════════════════════════════════════════════╗
echo ║                                                                                                                                                                             ║
echo ║                     Dziękuje za skorzystanie z Konfiguratora                           ║
echo ║                                                                                        ║
echo ║                                                                                        ║
echo ║                                                                                        ║
echo ║                   Naciśnij Enter                                                       ║
echo ║                                                                                        ║
echo ╚════════════════════════════════════════════════════════════════════════════════════════╝
pause > nul

Wersja nie zadająca pytania (działa prawidłowo) :

@echo off
chcp 65001 >nul
for /f "tokens=4 delims= " %%i in ('systeminfo ^| findstr /C:"Total Physical Memory"') do (set mem=%%i)
call :calc %mem%
reg add "HKLM\SYSTEM\ControlSet001\Control" /v "SvcHostSplitThresholdInKB" /t REG_DWORD /d "%mem_kb%" /f
exit
:calc
set "mem_gb=%~1"
set /a "mem_kb=%mem_gb%*1024*1024"

W czym może być problem ?
Pozdrawiam

0
@echo off
setlocal enabledelayedexpansion
chcp 65001 > nul
choice /n /c 12 /m "Czy system ma dokonać połączenia SVCHOST? [1]-TAK [2]-NIE"
if not errorlevel 2 (
for /f "tokens=4" %%i in ('systeminfo ^| findstr /c:"Total Physical Memory"') do set mem=%%i
call :calc !mem!
)
endlocal
exit /b
:calc
set mem_gb=%1
set /a mem_kb=%mem_gb%*1024*1024
reg add "HKLM\SYSTEM\ControlSet001\Control" /v "SvcHostSplitThresholdInKB" /t REG_DWORD /d "%mem_kb%" /f

1 użytkowników online, w tym zalogowanych: 0, gości: 1