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

Have .bat display info during execution (of WinSCP)

在开始之前,我想提前感谢您提供的任何帮助。这是我的第一个 post,我努力遵守规则。我查过了,但在任何地方都找不到这个答案。

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

我想出了如何获取我想要显示的信息的方法:

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

我只是想知道是否有一种方法可以在我的文件传输完成时显示从 typeperf 命令返回的信息。然后,在传输结束时关闭 window。有点像一些文本说 "Please Wait" 而程序 运行s 除了它会在界面上显示 bytes/sec。

这是我用于 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"

期待可以提供的任何帮助,假设我是实际可能的。

WinSCP 本身显示传输进度。除了你 运行 WinSCP 处于隐藏模式。

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


如果您想以自己的自定义格式显示进度,请使用 WinSCP .NET assembly [for example from a PowerShell script] instead of WinSCP scripting. And handle Session.FileTransferProgress event

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