当从c#中调用powershell脚本时,包含不工作的脚本

本文关键字:脚本 包含不 工作 当从 调用 powershell | 更新日期: 2023-09-27 17:53:03

我有一个power shell脚本,其中包含如下脚本。

. "$PSScriptRoot'CheckPermissions.ps1"

当脚本从c#中调用时,我得到这个错误

{术语''CheckPermissions。不能将Ps1 '识别为cmdlet、函数、脚本文件或可操作程序的名称。检查拼写的名称,或者如果包含了路径,则验证该路径是否为}

当从PS窗口运行时,脚本工作正常。

当脚本从c#运行时,$PSScriptRoot变量可用吗?

当从c#中调用powershell脚本时,包含不工作的脚本

您可以尝试使用以下命令获取脚本目录:

$scriptDir = Split-Path $script:MyInvocation.MyCommand.Path

请注意,返回的文件夹路径将以反斜杠(')结尾。

试试下面的代码

$scriptpath = "your second file path"
$psContent = @(Get-Content $scriptPath)
[string]$psCmd = $psContent -join "`n"
$secondscriptoutput = iex $psCmd
$secondscriptoutput #output returned by second file
当从c#代码中调用ps脚本时,

Myinvocation将不起作用。请把这个标记为答案,如果它适用于你。谢谢!