C# 4.0 在C Windows应用程序中调用脚本时,无法在powershell中操作字符串

C# 4.0 在C Windows应用程序中调用脚本时,无法在powershell中操作字符串,c#-4.0,powershell-4.0,C# 4.0,Powershell 4.0,我正在尝试使用PowerShell备份SQL Server数据库,然后围绕它制作windows应用程序。但它不起作用。我想我把双引号和单引号放错了,把字符串混在一起了。下面是我调用PowerShell脚本的C代码 Runspace Runspace=RunspaceFactory.CreateRunspace; 运行空间。打开; Pipeline Pipeline=runspace.CreatePipeline; pipeline.Commands.AddScriptImport-Module

我正在尝试使用PowerShell备份SQL Server数据库,然后围绕它制作windows应用程序。但它不起作用。我想我把双引号和单引号放错了,把字符串混在一起了。下面是我调用PowerShell脚本的C代码

Runspace Runspace=RunspaceFactory.CreateRunspace; 运行空间。打开; Pipeline Pipeline=runspace.CreatePipeline;
pipeline.Commands.AddScriptImport-Module SQLPS-DisableNameChecking; pipeline.Commands.AddScript$dt=Get Date-Format'+dtFormat+'; pipeline.Commands.AddScript$dbname='+dbname+'; pipeline.Commands.AddScript$backup=+bckFolderPath+@\$$dbname\u db\u$$dt.bak; pipeline.Commands.AddScriptBackup-SqlDatabase-ServerInstance'+serverName+'-Database$dbname-BackupFile+$backup; 运行空间。关闭;
我能做些什么,因为这不需要备份,但如果我在PowerShell中运行脚本,那么它就可以工作了。

您确实意识到,您在评论中提供的在PS中工作的命令与在c中执行的命令不同吗?您的PS命令中不存在$backup行

无论如何,我相信错误可能在$backup行中,路径周围缺少引号

pipeline.Commands.AddScript("$backup = '" +bckFolderPath +@"\$($dbname)_db_$($dt).bak'");

是否可以添加为正在工作的PowerShell键入的命令?导入模块SQLPS-DisableNameChecking$dt=Get Date-Format yyyyMMddHHmmss$dbname='abc'备份SqlDatabase-ServerInstance DEMO-数据库$dbname-备份文件E:\Backup\$$dbname\U db\$$dt.bak