找不到类型 [WinSCP.EnumerateOptions]
Unable to find type [WinSCP.EnumerateOptions]
我正在 PowerShell 中使用 WinSCP 来管理 FTP 中的文件。在使用 WinSCP 网站上给出的标准脚本时,出现此错误:
Unable to find type [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()
}
是EnumerationOptions
,不是EnumerateOptions
。
Session.EnumerateRemoteFiles
is a method, so you need to call it on Session
instance.
path
argument of Session.EnumerateRemoteFiles
是 路径 ,而不是 URL:
$remotePath = "/relevantfolder/"
要补充 :
您的问题归结为记错了类型名称,在 PowerShell 中直到 运行时。
才出现
您可以使用 PowerShell 的 tab 补全、 缓解问题,但是:
[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
,如果它带有模块。
您打错了类型名称(前缀)。
- 使用制表符补全试验变体或查阅文档。
我正在 PowerShell 中使用 WinSCP 来管理 FTP 中的文件。在使用 WinSCP 网站上给出的标准脚本时,出现此错误:
Unable to find type [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()
}
是
EnumerationOptions
,不是EnumerateOptions
。Session.EnumerateRemoteFiles
is a method, so you need to call it onSession
instance.path
argument ofSession.EnumerateRemoteFiles
是 路径 ,而不是 URL:$remotePath = "/relevantfolder/"
要补充
您的问题归结为记错了类型名称,在 PowerShell 中直到 运行时。
才出现您可以使用 PowerShell 的 tab 补全、 缓解问题,但是:
[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
,如果它带有模块。
- 使用
您打错了类型名称(前缀)。
- 使用制表符补全试验变体或查阅文档。