在(WinSCP)执行期间具有.bat显示信息

时间:2018-11-14 23:47:58

标签: windows bash batch-file ftp winscp

在开始之前,我想先感谢您提供的任何帮助。这是我的第一篇文章,我已经尝试遵守规则。我检查了一下,但在任何地方都找不到答案。

我有一个批处理文件,已将其设置为每天在计划的时间运行。该文件使用WinSCP来获取服务器上文件夹的内容并将其复制到本地目录。传输大小约为1.2GB-1.5GB,大约需要20秒。我想在转移发生时显示一些信息。我正在寻找一种显示与传输相同的cmd窗口中每秒通过我的网络接口(或类似)的字节数的方法。

我想出了如何通过以下方式获取要显示的信息:

typeperf "\Network Interface(Realtek PCIe GbE Family Controller)\Bytes Received/sec"

我只是想知道在我的文件传输完成时是否有一种方法可以显示从typeperf命令返回的信息。然后,在传输结束时关闭窗口。类似于在程序运行时显示“请稍候”的文本,除了会在界面上显示字节/秒。

这是我用于WinSCP FTP传输的脚本,其中删除了IP和用户名:

"C:\Program Files (x86)\WinSCP\WinSCP.exe" /ini=nul /command "open ftp://UserNamer:StrongPassword1@###.###.###.###/" "cd /ShooterGame/Saved" "lcd ""D:\ARK Server Backup""" "get SavedArk57057" "exit"

在我有可能的情况下,期待可以提供的任何帮助。

1 个答案:

答案 0 :(得分:2)

WinSCP本身显示了传输进度。除了您以隐藏模式运行WinSCP。

Replace winscp.exe with winscp.com在控制台窗口中显示传输进度。

enter image description here


如果要以自己的自定义格式显示进度,请使用WinSCP .NET assembly [例如from a PowerShell script]代替WinSCP脚本。并处理Session.FileTransferProgress event

converting WinSCP script to PowerShell script with use of WinSCP .NET assembly的指南。