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에 새로운 라인을 삽입해야했기 때문에 전혀 작동하지 않을 것입니다. 그렇지 않으면 완전히 실패했습니다. 이 방법으로 작동하지만 오류가 너무 귀찮습니다. 도움을 주셔서 감사합니다. –
감사합니다. 정확히 그랬습니다. 메모장 ++를 사용하여 세 문자를 지우고 오류가 사라졌습니다. –