转自: http://ju.outofmemory.cn/entry/77341
Scenario:
最近公司做的一个项目,UI部分我是使用python在编译时做localization的,是linux下运行的,但是开发是在windows下进行的每次编译后都要手动通过WinSCP这个工具传到测试机上测试,很麻烦.网上查了下WinSCP在windows下也可以在命令行下直接使用,于是就写了个BAT文件编译完后自动传到测试及其上去.
ENV:
远程机器: centos(IP:10.64.70.189)
远程目录:/var/tmso
编译脚本:D:\tmso\tool\Compiler.py
输出目录:D:\tmso\build\release
WinSCP:D:\Program Files (x86)\WinSCP\WinSCP.exe
传输脚本:D:\tmso\tool\autoupload.txt
BAT文件内容
echo off
set psf=”D:\tmso\build\release”
set compilertooldir=”D:\tmso\tool\”
set scptool=”D:\Program Files (x86)\WinSCP\WinSCP.exe”
set script=”D:\tmso\tool\autoupload.txt”
d:
cd %compilertooldir%
python Compiler.py
if exist %psf% goto succ
if not exist %psf% goto fail
:succ
%scptool% /console /script=%script%
exit
:fail
echo No output dir:%psf%
pause
autoupload.txt文件内容
open root:xxxpassword@10.64.70.189
synchronize remote D:\tmso\build\release /var/tmso -delete
exit
==========================================================
WinSCP命令行
WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。
直接在cmd下输入winscp进入winscp操作介面,查看帮助直接在下面输入help就可以看到所以可用到的命令。
连接到远程机器:
open yourusername@yourip
输入密码就成功登录了。
输入help:
winscp> help
call 执行任意远程Shell命令
cd 改变远程工作目录
chmod 改变远程文件权限
close 关闭会话
exit 关闭所有会话并结束程序
get 从远程目录下载文件到本地目录
help 显示帮助
keepuptodate 在一个远程目录连续反映本地目录的改变
lcd 改变本地工作目录
lls 列出本地目录的内容
ln 新建远程符号链接
lpwd 显示本地工作目录
ls 列出远程目录的内容
mkdir 新建远程目录
mv 移动或者重命名远程文件
open 连接到服务器
option 设置或显示脚本选项的值
put 从本地目录上传文件到远程目录
pwd 显示远程工作目录
rm 删除远程文件
rmdir 删除远程目录
session 列出连接的会话或者选择活动会话
synchronize 用一个本地目录同步远程目录
如果要查看某个命令的具体使用方法用:
help command
例:
help synchronize
winscp> help synchronize
synchronize local|remote|both [ [ ] ]
第一个参数是’local’时,用远程与本地同步。
当第一个参数是’remote’时用本地目录同步远程目录。
当第一个参数是’both’用一个同步另一个。
当目录没有指定时,同步当前工作目录。
如果’synchdelete’设置为’on’,旧文件会被删除。
注意:对这个命令,覆盖确认永远是关闭的。
影响的选项:
transfer, synchdelete, exclude, include
范例:
synchronize remote
synchronize both d:\ /home/martin/public_html
虽然只是个文件传输工具,相当于类似于ftp之类的工具,但这玩意功能相当强大,值得了解下!很多黑客们都用这玩意!
winscp命令行批处理读远程服务器文件例子文章分类:操作系统
option echo off
option batch on
option confirm off
open scp://yourusername:yourpassword@yourip
get /opt/backup/gnome-libs-1.4.2.tar.bz2 d:\ui\gnome-libs-1.4.2.tar.bz2
close
exit
同步整个文件夹的方法synchronize:
option echo off
option batch on
option confirm off
open scp://yourusername:yourpassword@yourip
cd /opt/backup/
option transfer binary
option synchdelete off
synchronize local d:\ui
close
exit