0
我想從使用Process類的C#代碼執行批處理文件。批處理獲取參數,並將其作爲帶引號的字符串傳遞到ProcessStartInfo.Arguments中。一切都很好,除了當批處理執行前有一些垃圾ascii符號,我無法弄清楚它們來自哪裏。 批處理腳本看起來很簡單:用參數執行批處理使用進程
%1 -S .\sqlexpress -i %2
批量只是在特定位置執行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文件中。至於參數,它們是通過我的C#代碼中調用的Process實例注入的,並將它們作爲字符串參數傳遞。我不得不在RunScript.bat中插入一個新行,這樣它就可以工作,否則它完全失敗。它正在以這種方式工作,但是那個錯誤太令人討厭了...... 感謝您的幫助。 – 2010-01-16 17:47:31
謝謝,就是這樣。我用HEX編輯器使用Notepad ++刪除這三個字符,錯誤消失了。 – 2010-01-16 18:17:42