if statement - Go Back to Start If no input is entered (Bat File) (#2) -
this follow-up question: go start if no input entered (bat file) final touch , file perfect :) here's relevant code part:
:: delete variable %f% set "f=" set /p f=folder or file trget: attrib +s +h +r %f%
if set non input, file makes relevant files in same folder , same extension (as in attrib +s +h +r *.bat
) ,(in case, bat) in system files
i apologize bad wording
the complete procedure of script (it's not script onlly on part of it)
:hide @echo off cls color 0c echo. echo. :: delete variable %f% set "f=" set /p f=folder or file trget: attrib +s +h +r %f% @echo off cls echo. echo. echo ###################################################### echo # # echo # 1 - set other system attribute folder or file # echo # 2 - remove system attribute folder or file # echo # 3 - exit # echo # # echo ###################################################### echo. echo. :: delete variable %a% set "a=" set /p a=set choice , press enter: echo loading ......... if "%a%"=="1" goto hide if "%a%"=="2" goto show if "%a%"=="3" goto exit goto hide
- always take filename quotes becouse can have spaces.
delete quotes filename. more: set /?
set f=%f:"=%
make sure input not empty. command 'if not "%f%"==""' - checks input isn't empty. command 'if exist "%f%"' checks file exist.
:: delete variable %f% set "f=" set /p f=folder or file target: set f=%f:"=% if not "%f%"=="" if exist "%f%" attrib +s +h +r "%f%"
if have many commands can't runned without input can add procedure in end of file , call it
if not "%f%"=="" if exist "%f%" call :hidechecked :: there code. remember, call :label returns & keeps batch execution. read more: call /? :: there code ends. , new procedure starts. :: prevent crazy parsing exit /b :hidechecked attrib +s +h +r %f% :: exit /b == return exit /b
always user, error
if not "%f%"=="" if exist "%f%" call :hidechecked if "%f%"=="" ( echo must choose rem in 'if ()' can use rem comments. rem >nul - means command 'pause' print nothing (except errors) pause>nul goto hide ) if not exist "%f%" ( echo no such file. file list: rem dir /? dir /p/b pause>nul goto hide )
in start of file add 'goto input'. after each procedure (:hide :show :exit) add 'goto input' prevent crazy parsing.
:: @ start of file goto input :: there can code :show :: , there goto input :hide @echo off cls color 0c echo. echo. :: delete variable %f% set "f=" set /p f=folder or file target: set f=%f:"=% if not "%f%"=="" if exist "%f%" call :hidechecked if "%f%"=="" ( echo must choose rem in 'if ()' can use rem comments. rem >nul - means command 'pause' print nothing (except errors) pause>nul goto hide ) if not exist "%f%" ( echo no such file. file list: rem dir /? dir /p/b pause>nul goto hide ) goto input :input @echo off cls echo. echo. echo ###################################################### echo # # echo # 1 - set other system attribute folder or file # echo # 2 - remove system attribute folder or file # echo # 3 - exit # echo # # echo ###################################################### echo. echo. :: delete variable %a% set "a=" set /p a=set choice , press enter: if "%a%"=="1" goto hide if "%a%"=="2" goto show if "%a%"=="3" goto exit echo must choose pause>nul goto input :: prevent crazy parsing exit /b :hidechecked attrib +s +h +r "%f%" :: exit /b == return exit /b
Comments
Post a Comment