腻子/ PSFTP文件传输自动化批处理文件(Batch file for PuTTY/PSFTP f

2019-09-02 05:39发布

我有从我的本地PC通过SFTP移动文件到服务器的批处理文件。 我已经安装在我的系统腻子批处理文件的代码如下。

cd C:\Program Files (x86)\PuTTY
psftp
open <IP>
<user>
<PW>
cd /home/irisuser/iris/integration/dls_dlsblr_dlschnn_in_msg/in
lcd d:\
put log.sh
bye

当我在命令提示键入它上面的代码完美的工作原理。 但是,当我双击.bat文件并运行它,它没有运行,并询问用户名和密码进入。 我的目标是自动化整个事情,我需要通过简单的点击运行它.bat文件。 但我不能够去实现它。 任何意见或片段会帮助我。

Answer 1:

您需要将PSFTP脚本(线从存储openbye )到一个单独的文件,并传递到psftp使用-b开关:

cd "C:\Program Files (x86)\PuTTY"
psftp -b script.txt

script.txt被假定为C:\Program Files (x86)\PuTTY 。 或者提供完整的路径(不要忘了道路封闭双引号,特别是如果它包含空格,你应该更好地与你做这个cd命令太)。

参考:
https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter6.html#psftp-option-b


编辑:对于用户名+密码:正如你不能使用psftp在批处理文件中的命令,出于同样的原因,你不能指定用户名和密码为psftp的命令。 这些被输入到open命令。 虽然可以指定与用户名open命令( open <user>@<IP>你不能指定密码这种方式。 这可以在上完成psftp只有命令行。 那么它可能更清洁做的所有的命令行:

cd "C:\Program Files (x86)\PuTTY"
psftp -b script.txt <user>@<IP> -pw <PW>

并删除open<user><PW>从线script.txt

参考:
https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter6.html#psftp-starting
https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.html#using-cmdline-pw


你在做什么大气压是您运行psftp不带任何参数或命令。 一旦你(通过键入像退出它bye ),您的批处理文件继续尝试运行open命令(及其他),什么Windows外壳显然不明白。


如果你真的想要把一切都在一个文件(批处理文件),你可以写命令PSFTP标准输入,如:

(
    echo cd ...
    echo lcd ...
    echo put log.sh
) | psftp -b script.txt <user>@<IP> -pw <PW>


Answer 2:

set DSKTOPDIR="D:\test"
set IPADDRESS="23.23.3.23"

>%DSKTOPDIR%\script.ftp ECHO cd %PAY_REP%
>>%DSKTOPDIR%\script.ftp ECHO mget *.report
>>%DSKTOPDIR%\script.ftp ECHO bye

:: run PSFTP Commands
psftp <domain>@%IPADDRESS% -b %DSKTOPDIR%\script.ftp

使用一组命令之前,上述各行的设定值。

我相信这可以帮助你。

Referre psfpt设置下面的链接https://www.ssh.com/ssh/putty/putty-manuals/0.68/Chapter6.html



文章来源: Batch file for PuTTY/PSFTP file transfer automation