首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用通过.net传入的参数从powershell调用BCP?

如何使用通过.net传入的参数从powershell调用BCP?
EN

Stack Overflow用户
提问于 2014-06-11 01:32:20
回答 1查看 220关注 0票数 0

我有以下c#代码:

代码语言:javascript
复制
var powerShell = PowerShell.Create();
            powerShell.Runspace = runspace;
            powerShell.AddArgument(connectionString);
            powerShell.AddArgument(storedProc);
            powerShell.AddArgument(dataSource);
            powerShell.AddArgument(filterList);
            powerShell.AddArgument(destinationFile);
            var script = "path\to\the\powershell.ps1";
            powerShell.AddScript(script);
            powerShell.Invoke();

我希望它能与powershell脚本一起工作:

代码语言:javascript
复制
$connString = $args[0]
$spName = $args[1]
$dataSource = $args[2]
$filterList = $args[3]
$destinationFile = $args[4]
bcp "$spName $filterList" queryout "$destinationFile" -c -t"\0" $connString

我没有使用powershell的经验。你们这些家伙和女士们觉得这样对吗?那.NET代码呢?这会像我假设的那样运行脚本吗?

EN

回答 1

Stack Overflow用户

发布于 2014-06-11 12:43:11

您的C#需要进行一些调整。首先,在添加命令之前,您不能添加参数。其次,AddScript()方法需要Powershell.ps1的脚本内容,而不是路径。试试这个:

代码语言:javascript
复制
var ps = PowerShell.Create();
ps.Runspace = runspace;
var script = System.IO.File.ReadAllText(@"path\to\the\powershell.ps1");
ps.AddScript(script)
ps.AddArgument(connectionString);
ps.AddArgument(storedProc);
ps.AddArgument(dataSource);
ps.AddArgument(filterList);
ps.AddArgument(destinationFile);
var results = ps.Invoke();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24147409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档