Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Запретить использование символов такие как !~@#$%^& (http://forum.oszone.net/showthread.php?t=350769)

hexer54539 24-02-2022 08:26 2980721

Запретить использование символов такие как !~@#$%^&
 
set /p name=

Как запретить испольозвание символов в batch?
Помогите пожалуйста

alpap 24-02-2022 16:02 2980749

Код:

@echo off
set "ss=* < > \ / | ? :"
set /p name="Введите произвольное имя для файла (папки), [например: <papka>]: "
call :# "%name%"
pause& exit

:#
  for /f "delims=" %%a in ('cmd /v/c echo !ss!') do echo "%~1"|>nul findstr "%%a" && (
      echo:& <nul set /p="Есть запрещенный символ из состава: %ss%"& echo:
    ) || (
      echo Допустим что-то создаем
    )
exit /b


megaloman 24-02-2022 16:15 2980750

Код:

@Echo Off
cls
:Begin
        Set "Name="
        Set /P Name=Name=
        Echo "%Name%" | >nul 2>&1 FindStr.exe /R /C:"[!~@#\$%%\^&]" &&(Echo "%Name%" содержит недопустимые символы &GoTo :Begin)
        Echo "Name=%Name%"       
Pause
Exit /B


Гуллипут 26-02-2022 08:53 2980835

Код:

set /p name=
for /F "tokens=2 delims=!~@#$%%^^&" %%t in ("A%name%A") do if "%%t"=="" echo All characters are good

Или чуть более развёрнуто:
Код:

set /p name=
for /F "tokens=2 delims=!~@#$%%^^&" %%t in ("A%name%A") do if "%%t"=="" (
  echo Нет плохих символов
) else (
  echo Обнаружены плохие символы
)



Время: 23:47.

Время: 23:47.
© OSzone.net 2001-