首页 > 解决方案 > PSFTP 未知命令 - PowerShelll 批处理任务 - Putty

问题描述

我希望你和你的家人一切都好——我一直在为这个我真的不明白的错误而苦苦挣扎。

这是我创建的 PowerShell 脚本,用于使用 PSFTP 将文件上传到 ftp 服务器

 
        $path="C:\Users\jhosef.cardich\Desktop\sol\psftp.exe"
        
        $comd1= "lcd C:\Users\jhosef.cardich\Desktop\sol\"
        $upload_result = ($comd1) | & $path -pw $pass "$user@$hst" 2> $
        
        $comd2="put myfile,txt"

        $upload_result+= $comd2 | & $path -pw $pass "$user@$hst" 2> $

        $upload_result  | Out-File -FilePath "C:\Users\jhosef.cardich\Desktop\sol\sftp.txt" -Append

        "DateTime Stamp - Upload: $(Get-Date)" | Out-File -FilePath "C:\Users\jhosef.cardich\Desktop\sol\sftp.txt" -Append

这是我每次运行代码时得到的输出:(我希望您专注于第二行)

Remote working directory is /download
psftp> psftp: unknown command "ktop\sol\"
psftp> quit
Remote working directory is /download
psftp> quit
DateTime Stamp - Upload: 11/18/2020 21:21:49

如您所见,我不明白为什么在第二行中出现错误“未知命令”,并且似乎 psftp 仅检测到我定义了路径的字符串的一部分。我也尝试了这个实现,但我得到了同样的错误(从 powershell 调用多个命令,例如 psftp)。

标签: powershellpsftp

解决方案


对此更新:问题是由于服务器上的某些配置导致正在执行包含 putty 命令的脚本。

确切地说,这是 Windows 受信任主机的问题,由于某种原因,我们不知道我们用来连接 putty 的 FTP 主机是如何从该列表中删除的。

我们注意到,当我们尝试打开与 Filezilla 的连接时,它会提示一个通知,要求我们信任并将 FTP 域添加到 Windows 受信任的主机列表中。当我们接受这一点时,突然脚本又可以正常工作了。很奇怪,但我的建议是使用 WinScp 而不是 putty。谢谢。


推荐阅读