我在 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从服务器获取文件并删除。