[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]求助:批处理sftp下载文件到本地指定目录

本帖最后由 hbxlt 于 2018-6-5 15:01 编辑

请教各位老师,如何利用批处理sftp下载远程linux服务器的文件到本地指定目录,如D:\data\sftp
谢谢
  1. @echo off
  2. echo 欢迎使用sftp 自动下载工具   
  3. psftp 202.101.248.29 -l root -pw root111 <qg.txt
  4. echo cd hb/kpi/qg > qg.txt
  5. echo bye >>qg.txt
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. pushd "D:\data\sftp\"
  3. >  qg.txt echo cd /root/hb/kpi/qg
  4. >> qg.txt echo mget *
  5. >> qg.txt echo bye
  6. echo y | psftp 202.101.248.29 -l root -pw root111 -b qg.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 hbxlt 于 2018-6-1 15:42 编辑

回复 2# Batcher

不知道为什么,使用您给的代码,还是不行。
下面是我原先的代码,能下载包含当前日期的数据文件,但是只能默认下载到当前目录,实际是需要换个目录。

@echo off
echo 欢迎使用ftp 自动下载工具   
for /f %%i in ('realdate.com /d') do (set remotelogname=%%i)
echo cd hb/kpi/qg > qg.txt
echo mget  *%remotelogname%*  >> qg.txt
echo bye >> qg.txt
echo --------------------------------------- >>qg.log  
for /f %%i in ('realdate.com /f="CCYY-MM-DD"') do (set locallogdate=%%i)
for /f %%i in ('realdate.com /f="hh:mm:ss"') do (set locallogtime=%%i)
echo %locallogdate% %locallogtime% >> qg.log
psftp 202.101.248.29 -l root -pw root111 < qg.txt > qg.log
echo. >> qg.log
echo done. >> qg.log

TOP

回复 3# hbxlt


    pushd 命令你放到哪里了?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher

老师,我按照你的语句执行,没有效果。
如果用我的语句,pushd命令应该放到哪个位置呢?

TOP

回复 5# hbxlt


    psftp 上面一行
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# Batcher

老师,按照你的提示,我将PSHD命令放在PSFTP前面一行,结果是 在新目录下有qg.log,没有下载任何文件。

TOP

回复 7# hbxlt


    放在第2行(也就是@echo off下面)试试
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 8# Batcher

还是不行

TOP

回复 9# hbxlt


    有报错信息吗?你的 psftp 放在哪个目录下?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 10# Batcher

putty 文件放在D:\data\sftp\
默认下载的路径也是D:\data\sftp\
想把下载的文件放到D:\data\sftp\ee下
错误提示一闪而过,好像说是pusdh的不是内部命令。

TOP

回复 11# hbxlt


    是不是抄错单词了 pushd
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 12# Batcher
在批处理命令里没有写错,是我刚才回复帖子的时候写错的。

TOP

回复 13# hbxlt


echo 欢迎使用ftp 自动下载工具
for /f %%i in ('realdate.com /d') do (set remotelogname=%%i)
echo cd hb/kpi/qg > qg.txt
echo mget  *%remotelogname%*  >> qg.txt
echo bye >> qg.txt
echo --------------------------------------- >>qg.log
for /f %%i in ('realdate.com /f="CCYY-MM-DD"') do (set locallogdate=%%i)
for /f %%i in ('realdate.com /f="hh:mm:ss"') do (set locallogtime=%%i)
echo %locallogdate% %locallogtime% >> qg.log
pushd "D:\data\sftp\ee"
psftp 202.101.248.29 -l root -pw root111 < qg.txt
popd

echo. >> qg.log
echo done. >> qg.log

这段代码保存为 D:\data\sftp\test.bat
打开一个CMD窗口,执行 D:\data\sftp\test.bat
结果发出来看看
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 14# Batcher

Microsoft Windows [???? 6.1.7601]
???????? (c) 2009 Microsoft Corporation????????????????

C:\Users\niu>d:

D:\>cd data\sftp

D:\data\sftp>test11.bat

D:\data\sftp>echo ????????ftp ????????????
????????ftp ????????????

D:\data\sftp>for /F %i in ('realdate.com /d') do (set remotelogname=%i )

D:\data\sftp>(set remotelogname=20180604 )

D:\data\sftp>echo cd hb/kpi/qg  1>qg.txt

D:\data\sftp>echo mget  *20180604*   1>>qg.txt

D:\data\sftp>echo bye  1>>qg.txt

D:\data\sftp>echo ---------------------------------------  1>>qg.log

D:\data\sftp>for /F %i in ('realdate.com /f "CCYY-MM-DD"') do (set locallogdate=
%i )

D:\data\sftp>(set locallogdate=2018-06-04 )

D:\data\sftp>for /F %i in ('realdate.com /f "hh:mm:ss"') do (set locallogtime=%i
)

D:\data\sftp>(set locallogtime=15:14:53 )

D:\data\sftp>echo 2018-06-04 15:14:53  1>>qg.log

D:\data\sftp>pushd "D:\data\sftp\ee"

D:\data\sftp\ee>psftp 202.101.248.29 -l root -pw root111  0<qg.txt
系统找不到指定的文件。

D:\data\sftp\ee>popd

D:\data\sftp>echo.  1>>qg.log

D:\data\sftp>echo done.  1>>qg.log

D:\data\sftp>

TOP

返回列表