0

im sure execute admin authority both.

My script is sending a registry query as a parameter entered with the URL to allow/block. However, a syntax error occurs in the reg add part of cmd. The same error occurs when the file itself is executed. It works normally when i use a jpsoft product called take command tool.

chcp 65001>nul


:ALLOW
set /p str=Input access url  : 
set /p qes=%str% is right? (Y/N) : 

if %qes% EQU Y (
    for /f "tokens=1" %%c in ('reg query "HKLM\SOFTWARE\policies\Google\Chrome\URLAllowlist"') do set state=%%c 
    :: reg value name is (Default), 1, 2, 3, ...
    
    set /a number=%state%-1 
    :: reg value name valid check (Default or number)
    
    if {%number%} == {-1} ( 
    :: if reg value name is (Default), set up value = 1
        reg add "HKLM\SOFTWARE\policies\Google\Chrome\URLAllowlist" /v 1 /t REG_SZ /d %str% /f
        echo "%str%" url is registered successful
        set state=1
        set qes=
        set str=
        goto ALLOW
    ) else ( 
    :: if reg value name is number, count 1++
        set /a inc=%state%+1
        reg add "HKLM\SOFTWARE\policies\Google\Chrome\URLAllowlist" /v %inc% /t REG_SZ /d %str% /f
        echo "%str%" url is registered successful.
        set /a inc=%inc%+1
        set state=%inc%
        set qes=
        goto ALLOW
    )
) else (
    goto ALLOW
)
stuxn8t
  • 1
  • 1
  • 2
    `::` breaks things inside of parentheses. Use `REM` there instead. Also, since you're setting and using `inc` inside of the same code block, you need to be using delayed expansion. – SomethingDark Mar 29 '22 at 09:35

0 Answers0