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

来源:互联网 发布:c语言黑色编程界面 编辑:程序博客网 时间:2024/06/05 22:29

环境描述: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文件格式:




原创粉丝点击