В нашем случае, куда входит команда dotnet? Вы обычно начинаете с терминала с
dotnet [appname] .dll а вот вы поместите его после пути и имени dll?
Помимо других проблем,
start "Dotnet Test" D:\adi\NET\Bench\Bench\bin\Debug\netcoreapp2.1\Bench.dll dotnet %1 %2 %3 2>output.txt
должно быть
start "Dotnet Test" dotnet D:\adi\NET\Bench\Bench\bin\Debug\netcoreapp2.1\Bench.dll %1 %2 %3 2>output.txt
Вы не можете запустить DLL, вы хотите запустить dotnet для выполнения кода, содержащегося в DLL.
Также я не уверен, правильно ли я запускаю .Net Core Application.
Я подозреваю, что вы пытаетесь использовать start из-за недопонимания, описанного выше. Чтобы запустить ваше приложение в скрипте, все что вам нужно это:
dotnet D:\adi\NET\Bench\Bench\bin\Debug\netcoreapp2.1\Bench.dll %1 %2 %3 2>output.txt
start требуется только в том случае, если вы хотите запустить приложение .NET Core в отдельном окне, параллельно с остальной частью сценария. Это то, что команда
start "Dotnet Test" dotnet D:\adi\NET\Bench\Bench\bin\Debug\netcoreapp2.1\Bench.dll %1 %2 %3 2^>output.txt
должен сделать. Я пишу должно , потому что должно работать в соответствии с этим обсуждением , но на самом деле это не так.
Я мог бы заставить его работать, только используя обходной путь. Я создал отдельный пакетный скрипт runapp.cmd со следующим содержимым:
dotnet [appname].dll %1 %2 %3 2>error.txt & exit
И должен был начать вызвать этот скрипт:
start "Dotnet Test" runapp.cmd %1 %2 %3