我有一个Powershell脚本,比如TestReports.ps1
。在这个文件中我有像
这些参数值由用户以用户提示符给出。
现在我想通过传递rs
文件来调用.rss
实用程序(此文件具有用于将报告发布到vb中的reportserver的脚本),并且上述参数值从此{{1}传递文件。
如何使用此.ps1
文件中传递的参数调用.rss
文件?
在批处理文件中我给出如下:
.ps1
如何在rs -i Reports.rss -s %TargetURL% -v TargetFolder="%TargetFolder%" -v SourceReportFolder="%SourceReportFolder%" -v DataSourceFolder="%DataSourceFolder%" -v DataSourceName="%DataSourceName%" -v ServerName="%ServerName%" -v DataBaseName="%DataBaseName%" -v ReportName="%ReportName%"
文件中实现相同的功能?
答案 0 :(得分:0)
我不确定我是否清楚你的意思。查看 TestReports.ps1 的内容也会有所帮助。您是否只是问如何将该批处理语法转换为PowerShell?这是与批处理命令等效的PowerShell:
rs -i .\Reports.rss -s $TargetURL -v "TargetFolder=`"$TargetFolder`"" -v "SourceReportFolder=`"$SourceReportFolder`" -v "DataSourceFolder=`"$DataSourceFolder`"" -v "DataSourceName=`"$DataSourceName`"" -v "ServerName=`"$ServerName`"" -v "DataBaseName=`"$DataBaseName`"" -v "ReportName=`"$ReportName`""
几点说明:
ParameterName="Some Value"
形式,引号作为字符串值的一部分传递。如果它可以采用ParameterName=Some Value
形式,则可以简化-v TargetFolder=$TargetFolder
等所有 -v 参数,因为PowerShell会隐式地引用不带引号的字符串参数。.\
之前的Reports.rss
- 默认情况下,PowerShell在路径中没有当前的工作目录。答案 1 :(得分:-1)
得到解决方案,我们可以在批处理文件中使用与Powershell脚本中相同的代码,我们需要做的上述命令只是替换“%with $ and remove%”
示例:
批处理文件中的脚本:
rs -i TestReports.rss -s%TargetURL%-v TargetFolder =“%TargetFolder%” - v SourceReportFolder =“%SourceReportFolder%” - v DataSourceFolder =“%DataSourceFolder%” - v DataSourceName =“%DataSourceName%” -v ServerName =“%ServerName%” - v DataBaseName =“%DataBaseName%” - v ReportName =“%ReportName%”
Powershell中的脚本:
rs -i TestReports.rss -s $ TargetURL -v TargetFolder = $ TargetFolder -v SourceReportFolder = $ SourceReportFolder -v DataSourceFolder = $ DataSourceFolder -v DataSourceName = $ DataSourceName -v ServerName = $ ServerName -v DataBaseName = $ DataBaseName - v ReportName = $ ReportName