Цитата:
не перестанут - аргументы у тебя разбираются второй раз в :keycheckа у него глюк во втором разборе - проверка не имеет выхода по ошибке ввода, так что перестанут.
и ещё в паре мест такое же, устойчивости к ошибочному вводу ответов - ноль.
генерацию файлов, если уж вписывать в сам батник, лучше писать [more=так:]
Код: :generate_console
1>%source% (
echo using System;
echo.
echo class MainClass
echo {
echo public static int Main(string[] args)
echo {
echo return 0;
echo }
echo }
)
1>%schema% (
echo ^<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"^>
echo ^<ItemGroup^>
echo ^<Compile Include="project.cs" /^>
echo ^</ItemGroup^>
echo ^<Target Name="Build" Inputs="@(Compile)" Outputs="app.exe"^>
echo ^<Csc OutputAssembly="app.exe" Sources="@(Compile)" TargetType="exe" /^>
echo ^</Target^>
echo ^</Project^>
)
echo Done.
goto:end
:winform
goto:validate
:generate_winform
1>%source% (
echo using System;
echo using System.Drawing;>
echo using System.Windows.Forms;>
echo.>
echo public class frmMain:Form>
echo {>
echo public frmMain()>
echo {>
echo this.Text = "Form1";>
echo this.Size = new Size(300, 300);>
echo this.CenterToScreen();>
echo.>
echo InitializeComponent();>
echo }>
echo.>
echo protected override void Dispose(bool disposing)>
echo {>
echo if (disposing)>
echo {>
echo if (components != null)>
echo {>
echo components.Dispose();>
echo }>
echo base.Dispose(disposing);>
echo }>
echo }>
echo.>
echo private System.ComponentModel.IContainer components = null;>
echo.>
echo private void InitializeComponent()>
echo {>
echo }>
echo.>
echo [STAThread]>
echo public static int Main(string[] args)>
echo {>
echo Application.Run(new frmMain());>
echo return 0;>
echo }>
echo }>
)
1>%schema% (
echo ^<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"^>
echo ^<ItemGroup^>
echo ^<Compile Include="project.cs" /^>
echo ^</ItemGroup^>
echo ^<Target Name="Build" Inputs="@(Compile)" Outputs="app.exe"^>
echo ^<Csc OutputAssembly="app.exe" Sources="@(Compile)" TargetType="winexe" /^>
echo ^</Target^>
echo ^</Project^>
)
echo Done.
goto:end