Code: Select all
@echo off
set "normalColor=f"
set "errorColor=c"
color %normalColor%
set "fileNameInputMessage=Please enter non-empty program name (without extension):"
set /p "name=%fileNameInputMessage%"
:while_file_is_not_specified_or_exist
if "%name%"=="" (
call :ShowError "file name is empty"
set /p "name=%fileNameInputMessage%"
goto :while_file_is_not_specified_or_exist
)
if exist "%name%.cs" (
call :ShowError "%name%.cs exists in the current folder"
set /p "name=%fileNameInputMessage%"
goto :while_file_is_not_specified_or_exist
)
set "languageNumberInputMessage=Please enter number corresponding to language (C# - 1, Visual Basic.NET - 2, F# - 3):"
set /p "number=%languageNumberInputMessage%"
:while_language_is_not_specified
set numberInputStatus=0
if "%number%"=="" set numberInputStatus=1
if "%number%" lss "1" set numberInputStatus=1
if "%number%" gtr "3" set numberInputStatus=1
if %numberInputStatus%==1 (
call :ShowError "language with %number% is not supported now"
set /p "number=%languageNumberInputMessage%"
goto :while_language_is_not_specified
)
call :WriteTemplate %name% %number%
pause
exit %errorlevel%
:ShowError
color %errorColor%
echo error: %~1 [press any key to continue]
pause > nul
color %normalColor%
exit /b %errorlevel%
:WriteTemplate
if %~2 equ 1 (
echo using System; >> "%~1.cs"
echo.>> "%~1.cs"
echo namespace FirstNamespace>> "%~1.cs"
echo {>> "%~1.cs"
echo public class Program>> "%~1.cs"
echo {>> "%~1.cs"
echo public static void Main(string[] args)>> "%~1.cs"
echo {>> "%~1.cs"
echo. Console\.WriteLine("C# template.");>> "%~1.cs"
echo }>> "%~1.cs"
echo }>> "%~1.cs"
echo }>> "%~1.cs"
) else (
if %~2 equ 2 (
) else (
if %~2 equ 3 (
)
)
)
exit /b %errorlevel%
Now my code doesn't work. Problem spans in WriteTemplate. I don't know how to fix this error.