windows批处理SFTP上传文件到linux,并处理回车换行符号

环境描述:cognos cube在windows上生成,服务器在linux上,需要将每天更新的cube文件上传到linux服务器。

1、Windows上传文件到linux,有ftp和sftp方式,本次采用sftp方式:

下载putty中psftp.exe程序

新建upload.txt文件,代码如下:

open 192.168.6.65
cd /home/cognos/cube/test
mput -r C:\Users\yangxu\Desktop\cube\HXEY_MZSF*
bye

上面代码意思是:连接linux服务器192.168.6.65 ,上传本地文件夹C:\Users\yangxu\Desktop\cube\HXEY_MZSF\中所有文件到linux服务器/home/cognos/cube/test地址下。

新建bat文件,test.bat,代码如下:

cd C:\Users\yangxu\Desktop\cube\HXEY_MZSF\

@echo off
setlocal enabledelayedexpansion
(for /f “delims=” %%i in (hxey_mzsf.vcd) do (
set line=%%i
set line=!line:=/!
echo !line!
))>hxey_mzsf1.vcd

del hxey_mzsf.vcd

tr -d “\r”<hxey_mzsf1.vcd>hxey_mzsf.vcd

del hxey_mzsf1.vcd
cd C:\soft\putty
psftp -l cognos -pw cognos -b upload.txt
exit

注意:upload.txt和test.bat需要放在同一文件夹中才行

下面依次解释下代码意思:

cd C:\Users\yangxu\Desktop\cube\HXEY_MZSF\ --------cd到windows本地上传目录,即需要上传文件所在目录

@echo off
setlocal enabledelayedexpansion
(for /f “delims=” %%i in (hxey_mzsf.vcd) do (
set line=%%i
set line=!line:=/!
echo !line!
))>hxey_mzsf1.vcd ------------------将windows中\替换为/,因为在windows格式文件和linux文件格式斜杠方向不一致,需要做转换才可以使用

tr -d “\r”<hxey_mzsf1.vcd>hxey_mzsf.vcd ---------------将文件hxey_mzsf1.vcd中回车换行符号CRLF替换为linux下LF,此处感谢网络上大神指点

cd C:\soft\putty -------cd到存放psftp.exe程序的目录
psftp -l cognos -pw cognos -b upload.txt 调用同一文件夹中的upload.txt配置,上传文件到指定目录。

至此整个过程梳理完毕,亲测可用。

windows文件格式:
在这里插入图片描述
转换后linux文件格式:在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值