mercredi 3 février 2021

In windows batch file, both if and else are getting executed. how to avoid? what is the problem with my code?

When i try to execute below batch file, folder(reading input from user:foldername) is created but else steps also getting executed and by showing below message. what is the wrong with code.

I need code help-to show the error message and repeat a step from "set /p foldername=Enter a folder name:", if user enter the folder names with spaces.(Enter a folder name: abc cdf - is not acceptable.)

Enter a folder name:abc  
abc created succesfully
'else' is not recognized as an internal or external command,  
operable program or batch file.
abc already exist, choose other name  
Press any key to continue . . .
@Echo Off
SETLOCAL ENABLEDELAYEDEXPANSION
@color 0a
cls

set "dest=D:\auto\Practice_3\destination"
set /p foldername=Enter a folder name:
set folder_date=%DATE:/=%
SET dirname="%folder_date:~8,4%_%folder_date:~6,2%_%folder_date:~4,2%"

mkdir %dest%\%USERNAME%\%dirname%

if not exist "%dest%\%USERNAME%\%dirname%\%foldername%" (
    mkdir %dest%\%USERNAME%\%dirname%\%foldername%
    echo %foldername% created succesfully
)
else (
    echo %foldername% already exist, choose other name
    pause
    exit
)
echo Listed files in file_list.txt are being copied ... 
echo Please wait ...
for /f %%f in (file_list.txt) do (

    for /f "tokens=*" %%F IN ('dir /S /B /A:-D "%%f"') Do (
                copy "%%F" "%dest%\%USERNAME%\%dirname%\%foldername%"       
    )
)
echo Backup done for listed files in file_list.txt
echo Tst and env files are being copied ...
echo Please wait ...

Set py_scripts="Python_Scripts"
mkdir %dest%\%USERNAME%\%dirname%\%foldername%\%py_scripts%
for /R %%f in (*.py) do copy %%f "%dest%\%USERNAME%\%dirname%\%foldername%\%py_scripts%"

pause

ENDLOCAL

Aucun commentaire:

Enregistrer un commentaire