我有从我的本地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
文件。 但我不能够去实现它。 任何意见或片段会帮助我。
您需要将PSFTP脚本(线从存储open
至bye
)到一个单独的文件,并传递到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>
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