@echo off
@title Program Internet Disconnector
REM check for admin rights code was here but is too long for this post
cls
setlocal EnableDelayedExpansion
cls
echo Press any key to Start
pause >nul
cls
set i=0
for %%x in (exe) do (
for /r %%a in (*.%%x) do (
set /a i+=1
set P!i!=%%~fdpa
set F!i!=%%~nxa
))
set y=0
:lock
set /a y+=1
if %y% gtr %i% (
goto Done)
set exec=!F%y%!
set path=!P%y%!
echo:
Эти значения для переменных exec
и path
, возвращение нормально (т.е. executable.exe
и C:\
) так же, как они должны:Netsh команда возвращения неопознанная ошибка, причина неизвестна
echo %exec%
echo %path%
pause
Здесь, хотя, проблема в том, что Netsh команда возвращает ошибку 'netsh' is not recognized as an internal or external command, operable program or batch file.
netsh advfirewall firewall add rule name="%exec%" dir=in action=block program="%path%" enable=yes
netsh advfirewall firewall add rule name="%exec%" dir=out action=block program="%path%" enable=yes
pause
goto lock
:Done
echo:
echo Press any key to exit...
Pause >nul
exit
W Это проблема здесь, так как я не могу понять, почему этот код не просто блокирует программу и движется дальше. Я даже использовал этот код один раз раньше, аналогичным образом без ошибки. Кто-нибудь знает, что случилось?
Возможно, netsh не установлен на вашем ПК. Если вы откроете командную строку и введите 'netsh', вы получите приглашение' netsh> '? – unclemeat