Я пытаюсь выполнить пакетный файл из кода C# с помощью класса Process. Пакет переходит к параметрам, переданным в качестве цитируемых строк в ProcessStartInfo.Arguments. Все отлично работает, кроме того, что, когда партия исполняется, ее предварительно засекретили несколькими символами ascii-мусора, я не могу понять, откуда они. Пакетный сценарий выглядит просто:Выполнение пакета с параметрами с использованием процесса
%1 -S .\sqlexpress -i %2
Batch просто выполняет sqlcmd.exe в определенном месте и переходит в SQL скрипт для выполнения. Когда я запускаю это вручную в командной строке, он отлично работает, поэтому это не сама сгенерированная команда. Идеи?
Это то, что строить сценарий исполнения результат выглядит как: [
[gallio] D:\Development\project_A\Trunk\build\compile>"D:\Development\project_A\Trunk\build\tools\sqlcmd\SQLCMD.EXE" -S .\sqlexpress -i "C:\Temp\project_A_consolidated_sql_scripts.sql"
[gallio] '' is not recognized as an internal or external command,
[gallio] operable program or batch file.
[gallio] Creating project_A database
[gallio] Changed database context to 'master'.
[gallio] Creating project_ADBUser login
[gallio] Changed database context to 'project_A'.
[gallio] Creating project_ADBUser user
[gallio] Creating project_A Schema
[gallio] Changed database context to 'project_A'.
] Image
Спасибо.
Параметризованная строка (вверху) находится в файле RunScript.bat. Что касается параметров, они вводятся через экземпляр Process, который я вызываю в моем C# -коде, передавая их как строковый параметр. Мне пришлось вставить новую строку в RunScript.bat, чтобы она работала вообще, иначе она полностью не удалась. Он работает таким образом, но эта ошибка просто так раздражает ... Спасибо, что помогли. –
Спасибо, это было именно так. Я использовал Notepad ++ с редактором HEX, чтобы удалить эти три символа, и ошибка исчезла. –