.net 找不到类型[WinSCP.EnumerateOptions]

.net 找不到类型[WinSCP.EnumerateOptions],.net,powershell,ftp,winscp,winscp-net,.net,Powershell,Ftp,Winscp,Winscp Net,我正在PowerShell中使用WinSCP来管理FTP中的文件。在使用WinSCP网站上提供的标准脚本时,我遇到以下错误: 找不到类型[WinSCP.EnumerateOptions] 我在5.13版中工作-刚离开现场 $remotePath = "ftp://username:password@network:port/relevantfolder/" $localPath = "C:/Users/me/localdir" $mask = "*.*" $files = Enumerate

我正在PowerShell中使用WinSCP来管理FTP中的文件。在使用WinSCP网站上提供的标准脚本时,我遇到以下错误:

找不到类型[WinSCP.EnumerateOptions]

我在5.13版中工作-刚离开现场

$remotePath = "ftp://username:password@network:port/relevantfolder/"
$localPath = "C:/Users/me/localdir"
$mask = "*.*"

$files = EnumerateRemoteFiles(
             $remotePath, $mask, [WinSCP.EnumerateOptions]::AllDirectories)

foreach ($fileInfo in $files)
{
    Write-Host "Downloading $($fileInfo.FullName) ..."
    $filePath = [WinSCP.RemotePath]::EscapeFileMask($fileInfo.FullName)
    $session.GetFiles($filePath, $localPath + "\*").Check() 
}
  • 它是,而不是
    枚举选项

  • 是一个方法,因此需要调用它

  • 是路径,而不是URL:

    $remotePath = "/relevantfolder/"
    
  • 它是,而不是
    枚举选项

  • 是一个方法,因此需要调用它

  • 是路径,而不是URL:

    $remotePath = "/relevantfolder/"
    
  • 补充:

    您的问题归结为错误地记住了类型名,在PowerShell中直到运行时才会出现该名称

    您可以缓解PowerShell选项卡完成的问题,但是:

    [winscp.enumerate<tab> # NO completion, because no such type exists.
    
    [winscp.enumeration<tab> # -> completion to [WinSCP.EnumerationOptions]
    
    [winscp.enumerate#不完成,因为不存在此类类型。
    [winscp.enumeration#->完成到[winscp.EnumerationOptions]
    
    请注意,完成即使在没有命名空间组件的情况下也可以工作(例如,
    [enumerationo]
    ),但是对于短前缀或通用名称前缀,可以循环使用许多匹配项

    相反,如果没有完成,可能的原因是:

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

      • 使用
        添加类型-Path
        /
        添加类型-AssemblyName
        加载它,或者
        导入模块
        (如果模块附带)
    • 您键入的类型名称(前缀)错误

      • 使用制表符完成或查阅文档来试验变体
    补充:

    您的问题归结为错误地记住了类型名,在PowerShell中直到运行时才会出现该名称

    您可以缓解PowerShell选项卡完成的问题,但是:

    [winscp.enumerate<tab> # NO completion, because no such type exists.
    
    [winscp.enumeration<tab> # -> completion to [WinSCP.EnumerationOptions]
    
    [winscp.enumerate#不完成,因为不存在此类类型。
    [winscp.enumeration#->完成到[winscp.EnumerationOptions]
    
    请注意,完成即使在没有命名空间组件的情况下也可以工作(例如,
    [enumerationo]
    ),但是对于短前缀或通用名称前缀,可以循环使用许多匹配项

    相反,如果没有完成,可能的原因是:

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

      • 使用
        添加类型-Path
        /
        添加类型-AssemblyName
        加载它,或者
        导入模块
        (如果模块附带)
    • 您键入的类型名称(前缀)错误

      • 使用制表符完成或查阅文档来试验变体

    旁白:还有一个对PowerShell友好的WinSCP包装(由另一位开发人员创建):旁白:还有一个对PowerShell友好的WinSCP包装(由另一位开发人员创建):谢谢-现在一切正常。非常感谢。谢谢-现在一切正常。非常感谢。