找不到类型[WinSCP.EnumerateOptions]

时间:2018-12-07 16:35:22

标签: .net powershell ftp winscp winscp-net

我正在PowerShell中使用WinSCP来管理FTP中的文件。在使用WinSCP网站上给出的标准脚本时,出现此错误:

  

找不到类型[WinSCP.EnumerateOptions]。

enter image description here

我正在使用5.13版-刚从站点开始。

var_dump($user_found);
var_dump($return);
die();

2 个答案:

答案 0 :(得分:3)

  1. 它是EnumerationOptions,而不是EnumerateOptions

  2. Session.EnumerateRemoteFiles是一种方法,因此您需要在Session instance上调用它。

  3. path argument of Session.EnumerateRemoteFiles路径,而不是URL:

    $remotePath = "/relevantfolder/"
    

答案 1 :(得分:2)

互补 Martin Prikryl's effective solution

您的问题归结为错误记住类型名称,该类型名称在PowerShell中直到 runtime 才会出现。

您可以使用PowerShell的标签完成来缓解该问题,,但是:

[winscp.enumerate<tab> # NO completion, because no such type exists.

[winscp.enumeration<tab> # -> completion to [WinSCP.EnumerationOptions]

请注意,补全即使在没有名称空间组件的情况下也可以(例如[enumerationo<tab>])使用,但是使用短或通用名称前缀时,可能会有很多匹配项需要循环。

相反,如果未完成完成 ,则可能的原因是:

  • 实现目标类型的程序集尚未加载到会话中。

    • 使用Add-Type -Path / Add-Type -AssemblyName加载它;如果模块随附Import-Module,则使用**201601** **201602** **201603** 100 200 500
  • 您输错了类型名称(前缀)。

    • 使用制表符补全进行变体形式的实验,或查阅文档。