从远程Powershell调用获取函数值

从远程Powershell调用获取函数值,powershell,powershell-remoting,Powershell,Powershell Remoting,我远程调用Powershell脚本(.ps1),该脚本从第三方程序集(Rebex SFTP组件)调用函数。此函数返回一个整数值。这个远程调用是通过C代码完成的 我想将调用的结果转换为int,以便在C#代码中进行进一步处理 如何才能最有效地做到这一点 下面是一些代码: RemoteInvocationManager的代码片段(带有Powershell远程处理的自定义类,仅是重要部分): Powershell脚本(.ps1文件)的代码段: 看起来你想要: int output; bool isSuc

我远程调用Powershell脚本(.ps1),该脚本从第三方程序集(Rebex SFTP组件)调用函数。此函数返回一个整数值。这个远程调用是通过C代码完成的

我想将调用的结果转换为int,以便在C#代码中进行进一步处理

如何才能最有效地做到这一点

下面是一些代码:

RemoteInvocationManager的代码片段(带有Powershell远程处理的自定义类,仅是重要部分):

Powershell脚本(.ps1文件)的代码段:

看起来你想要:

int output;
bool isSuccess = int.TryParse(result, out output);
if(isSuccess){
//use outout
}
更新:

要抑制不需要的输出,请使用
[void]
或管道到
输出Null

[void][Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Rebex\SFTP for .NET 2.0 Trial\bin\Rebex.Net.Sftp.dll")


显示您尝试过的一些代码(相关代码片段)我现在返回两行,一行是LoadFrom调用的输出,第二行返回'12'(这是传输的文件的大小)。有没有办法抑制第一行的输出,这样我就可以调用您提供的C#tryparse代码?
[Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Rebex\SFTP for .NET 2.0 Trial\bin\Rebex.Net.Sftp.dll")
$sftp = New-Object Rebex.Net.Sftp
$sftp.Connect("127.0.0.1")
$SshPrivateKey = New-Object Rebex.Net.SshPrivateKey("c:\temp\sftp\keys\private\myprivatekey.ppk", "myuser")
$sftp.Login("myuser", $SshPrivateKey)
$sftp.PutFile("c:\temp\sftp\input\file1.txt", "/output/fileout.txt")
$sftp.Disconnect()
int output;
bool isSuccess = int.TryParse(result, out output);
if(isSuccess){
//use outout
}
[void][Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Rebex\SFTP for .NET 2.0 Trial\bin\Rebex.Net.Sftp.dll")
[Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Rebex\SFTP for .NET 2.0 Trial\bin\Rebex.Net.Sftp.dll") | Out-Null