本文中运行环境为Win10, 脚本类型为bat脚本, 上传文件使用WinScp客户端进行上传, 下面开始教程
一. 安装WinScp客户端WinScp客户端官方链接: https://winscp.net/eng/download.php
下载完安装即可, 可以自定义安装目录, 也可以使用默认的, 楼主是选择的自定义安装到了D:softWinScp下
在需要上传的文件或文件夹的同级目录下新建文件, 文件名命名为 upload.bat(具体名字随意,只要是.bat结尾即可)
脚本内容如下:
@Echo off :: 先备份当前目录路径 set oldPath=%cd% :: 设置winscp安装目录(这里修改为个人实际的安装路径) set winscpInstallDir=d:softwinscp :: 远程主机IP :: 如果不需要命令行输入可以直接写死, 如: :: set ipaddr=127.0.0.1 set /p ipaddr=请输入目标主机IP: :: 登录用户名 :: 如果不需要命令行输入可以直接写死, 如: :: set username=appadmin set /p set username=请输入登录用户名: :: 登录密码(注意啦!!!!) :: 如果密码中存在 & @ 等特殊字符时,请输入 ^ 用与转义 :: 如: admin@123&456 ====> admin^@123^&456 :: 如果不需要命令行输入可以直接写死(也需要转义), 如: :: set password=admin^@123^&456 set /p set password=请输入登录密码: :: 设置需要上传的文件(与该脚本同级目录) set localFilePath=%oldPath%test :: 保存的远程目录 set remotePath=/app/HEIMDALL :: 打印提示信息 Echo 准备推送文件到远程服务器... :: 生成winscp执行的脚本 Echo option batch on > winscp.txt Echo option confirm off > winscp.txt :: 打开远程链接 :: 如果用户名或密码带有特殊字符,推荐直接在这里写死(也需要转义) Echo open %username%:%password%@%ipaddr% > winscp.txt :: 进入到目标文件夹 Echo cd %remotePath% >> winscp.txt Echo option transfer binary >> winscp.txt :: 上传到远程 Echo put %localFilePath% >> winscp.txt Echo close >> winscp.txt Echo exit >> winscp.txt :: 到winscp.com 所在盘符 cd %winscpInstallDir% :: 使用winscp将文件上传到远程服务器,script为生成的步骤文件 winscp.com /console /script=%oldPath%winscp.txt :: 删除本次上传生成的winscp.txt cd %oldPath% del winscp.txt pause
写完之后保存, 双击运行, 命令行窗口显示如下即为上传完毕:
之后进入Linux服务器相应文件夹查看, 文件已经上传完毕, 打完收工
如果在自己集成的过程中需要打开新的CMD窗口,可以使用以下两种方式:
1. start cmd /k echo Hello, World! 2. start cmd /C pause 区别第一种是新开的窗口不会自动关闭, 而第二种执行完毕以后, 新开的窗口会自动关闭三. bat脚本中部分特殊字符
1、@ 命令行回显屏蔽符 2、% 批处理变量引导符 3、> 重定向符 4、>> 重定向符 5、<、>&、<& 重定向符 6、| 命令管道符 7、^ 转义字符 8、& 组合命令 9、&& 组合命令 10、|| 组合命令 11、"" 字符串界定符 12、, 逗号 13、; 分号 14、() 括号 15、! 感叹号四. WinScp命令行部分命令
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 例,现在不记得synchroize的具体命令方法了,现在我可以使用: help synchronize winscp> help synchronize synchronize local|remote|both [[ ] ]`



