如何创建一个批处理文件,将文件从 pi 复制并删除到 pc 中?

如何创建一个批处理文件,将文件从 pi 复制并删除到 pc 中?

我在 Pi3 上有一个脚本,可以在以下位置创建文件:

home/pi/data/*csv

我正在尝试编写一个 bash 脚本,使用 PuTTY 将这些文件复制并删除到我计算机上的文件夹中。

这是我目前所拥有的:

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"

set "data='C:\Users\Recorded Data\%fullstamp%'"

echo Making Directory at: %data%
md %data%

cd C:\Programfiles
pscp @pi:/home/pi/data/*.csv %data%
pause

我看到我必须使用 PSFTP 来删除文件,但我还需要添加一个脚本来登录 pi?我现在有点迷茫了。

答案1

做这样的事情而不是pscp

(
    echo get /home/pi/data/*.csv %data%
    echo rm /home/pi/data/*.csv
    echo exit
) | psftp @pi 

虽然这在过渡上并不安全。如果在get启动后但在 之前创建了任何文件rm,它将被删除而不被下载。


如果你使用 WinSCP,你可以使用它的get -delete事务安全解决方案的命令:

winscp.com /ini=nul /command ^
    "open sftp://username:password@pi/ -hostkey=""...""" ^
    "get -delete /home/pi/data/*.csv %data%" ^
    "exit"

WinSCP GUI 可以生成批处理文件模板喜欢这个给你。

(我是 WinSCP 的作者)


另请参阅 Stack Overflow 上的同一问题: psftp.exe从服务器获取文件并删除

相关内容