PDA

Показать полную графическую версию : Запретить использование символов такие как !~@#$%^&


hexer54539
24-02-2022, 08:26
set /p name=

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

alpap
24-02-2022, 16:02
@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
@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
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 Обнаружены плохие символы
)




© OSzone.net 2001-2012