Silvi, если вы планируете использовать приложение Windows Forms из пакетного файла, и вы предполагаете, что приложение будет вести себя в таком режиме иначе, чем при открытии двойным щелчком, обычный подход - это анализ командной строки (аргументы, также доступные в основной метод в качестве параметра) и вообще не загружать пользовательский интерфейс.
фактически, если вы правильно написали свое приложение, пользовательский интерфейс управлял только пользовательским интерфейсом и не содержит всей логики манипулирования базой данных и преобразования данных.
Что вы можете сделать, это проверить внутри метода Main, есть ли параметры командной строки, и если вы обнаружите какие-либо из определенных вами определенных параметров, вы действительно избегаете даже вызывать Application.Run(new Form1(...));
и начать работать в пакетном режиме без пользовательского интерфейса.
ту же логику, которую вы хотите использовать в пакетном режиме или в режиме пользовательского интерфейса, можно обернуть в вспомогательные классы (часто также называемые бизнес-менеджерами или бизнес-логикой ... это зависит), так что у вас не будет дублирования кода, а просто пользовательский интерфейс или пакет будет вызывать эти классы красиво.