2010-01-14 2 views
0

Я пытаюсь выполнить пакетный файл из кода 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

Спасибо.

ответ

1

Я предполагаю, что у вас есть спецификация UTF-8 (byte order mark). То ли это в самом пакетном файле, либо в аргументе командной строки сложно сказать. Откуда вы получаете данные?

+0

Параметризованная строка (вверху) находится в файле RunScript.bat. Что касается параметров, они вводятся через экземпляр Process, который я вызываю в моем C# -коде, передавая их как строковый параметр. Мне пришлось вставить новую строку в RunScript.bat, чтобы она работала вообще, иначе она полностью не удалась. Он работает таким образом, но эта ошибка просто так раздражает ... Спасибо, что помогли. –

+0

Спасибо, это было именно так. Я использовал Notepad ++ с редактором HEX, чтобы удалить эти три символа, и ошибка исчезла. –

Смежные вопросы