我正在使用WinSCP在PowerShell中管理文件。在使用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()
}发布于 2018-12-07 17:57:59
EnumerationOptions,不是EnumerateOptions。Session.EnumerateRemoteFiles是一个方法,所以您需要在 instance上调用它。Session.EnumerateRemoteFiles是路径,而不是URL:
$remotePath =“/关联文件夹/”发布于 2018-12-07 18:16:43
补充Martin Prikryl's effective solution
您的问题归结于错误地记住了类型名称,在PowerShell中,它直到运行时才会出现。
但是,您可以通过PowerShell的选项卡完成,来缓解这个问题:
[winscp.enumerate<tab> # NO completion, because no such type exists.
[winscp.enumeration<tab> # -> completion to [WinSCP.EnumerationOptions]请注意,completion 甚至没有名称空间组件(例如[enumerationo<tab>])就能工作,但是使用短的或公共的名称前缀可以循环通过许多匹配。
相反,如果 not 发生,则可能的原因是:
- Use `Add-Type -Path` / `Add-Type -AssemblyName` to load it or `Import-Module`, if it comes with a module.
- Experiment with variants using tab completion or consult the docs.
https://stackoverflow.com/questions/53673540
复制相似问题