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'.

]图片

谢谢你。

4

1 回答 1

1

我的猜测是你那里有一个 UTF-8 BOM(字节顺序标记)。很难说是在批处理文件本身还是命令行参数中。你从哪里得到数据?

于 2010-01-14T14:58:38.617 回答