前言

本文中运行环境为Win10, 脚本类型为bat脚本, 上传文件使用WinScp客户端进行上传, 下面开始教程

一. 安装WinScp客户端

WinScp客户端官方链接: https://winscp.net/eng/download.php

下载完安装即可, 可以自定义安装目录, 也可以使用默认的, 楼主是选择的自定义安装到了D:\soft\WinScp下

二. 写bat脚本

在需要上传的文件或文件夹的同级目录下新建文件, 文件名命名为 upload.bat(具体名字随意,只要是.bat结尾即可)
脚本内容如下:

@Echo off:: 先备份当前目录路径
set oldPath=%cd%:: 设置winscp安装目录(这里修改为个人实际的安装路径)
set winscpInstallDir=d:\soft\winscp:: 远程主机IP
:: 如果不需要命令行输入可以直接写死, 如:
:: set ipaddr=127.0.0.1
set /p ipaddr=请输入目标主机IP: :: 登录用户名
:: 如果不需要命令行输入可以直接写死, 如:
:: set username=appadmin
set /p set username=请输入登录用户名: :: 登录密码(注意啦!!!!)
:: 如果密码中存在 & @ 等特殊字符时,请输入 ^ 用与转义
:: 至于这里为什么需要连续3个^,是因为密码在set password中被转义一次,在打开远程连接的时候会再被转义一次
:: 如:  admin^^^@123^^^&456 ==> admin^^@123^^&456 ==> admin^@123^&456 ==> admin@123&456
:: 声明变量 ==》 set赋值转义一次 ==》往winscp.txt中写时候再转义一次 ==》 实际执行时候
:: 如果不需要命令行输入可以直接写死(也需要转义), 如:
:: set password=admin^^^@123^^^&456
set /p set password=请输入登录密码: :: 设置需要上传的文件(与该脚本同级目录)
set localFilePath=%oldPath%\test\:: 保存的远程目录
set remotePath=/app/Test:: 打印提示信息
Echo 准备推送文件到远程服务器...:: 生成winscp执行的脚本
Echo option batch on > winscp.txt
Echo option confirm off > winscp.txt
:: 打开远程链接
:: 如果用户名或密码带有特殊字符,推荐直接在这里写死(也需要转义)
:: 密码与ip之间的@符号,也需要转义 写为^@
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

去注释版脚本

@Echo offset oldPath=%cd%
set winscpInstallDir=d:\soft\winscpset ipaddr=127.0.0.1
set username=appadmin
set password=admin^^^@123^^^&456set localFilePath=%oldPath%\test\
set remotePath=/app/TestEcho 准备推送文件到远程服务器...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.txtcd %winscpInstallDir%winscp.com /console /script=%oldPath%\winscp.txtcd %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 [ <local directory> [ <remote directory> ] ]`

使用bat脚本上传文件到Linux服务器相关推荐

  1. Windows使用bat脚本上传文件到Linux(免密上传)

    在工作中接到了使用bat命令定时上传文件到Linux的需求,总是需要手动输入密码挺麻烦,搞了两个比较简单的免密上传的方法.一.使用OpenSSH.二.使用FTP 一.使用OpenSSH bat内容在: ...

  2. window通过bat脚本调用WinSCP上传文件到linux服务器

    2022-08-15 最近在使用 WinSCP put 文件夹时,发现很多大的临时文件,隐藏文件都上传了上去,导致上传时长超长,于是希望对上传的文件进行过滤,具体的指令可参考如下链接: put com ...

  3. shell上传文件到服务器,shell脚本上传文件到ftp服务器

    shell脚本上传文件到ftp服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器 ...

  4. Windows 通过 SecureCRT 8.x 上传文件到Linux服务器

    转载自  Windows 通过 SecureCRT 8.x 上传文件到Linux服务器 1.SecureCRT 连接 Linux 服务器,这一步操作简单: 2.连接并登录成功后,直接在连接成功的页签上 ...

  5. sftp方式从windows上传文件到Linux服务器

    今天我一直用scp想实现从windows上传文件到Linux服务器,但是鼓捣了半天也没有实现.后来查资料才发现,scp实现文件的上传和下载貌似只能在Linux和Linux之间实现.(欢迎指正不对的地方 ...

  6. 本地上传文件到Linux服务器

    [问题描述] 如何将本地文件上传至Linux服务器上(这里分别以Windows和Ubuntu系统为例) [解决方法] scp filename username@IP:/home/directory ...

  7. M1 Mac上传文件到Linux服务器

    M1mac上传文件到linux服务器 1.要保证服务器ssh端口是22 2.重启 3.进入要上传的文件的根目录 4.连接服务器上传文件 1.要保证服务器ssh端口是22 vi /etc/ssh/ssh ...

  8. c上传文件到linux服务器,上传文件到Linux服务器

    1. Window上传文件到Linux 1.1 图形化界面winscp 适用于传送文件和目录,但要安装额外的软件winscp 1.2 lrzsz套件 适用于传送文件,使用ssh远程登录管理软件xshe ...

  9. linux非root上传文件,root账号无法上传文件到Linux服务器

    普通权限的账号,通过ftp工具,可以正常连上Linux服务器,可以正常上传文件.但是root账号却无法上传文件. 网上搜了半天才知道,默认情况下vsftp是不允许root用户登录的,可以通过修改限制来 ...

最新文章

  1. spring boot 实战 / 可执行war启动参数详解
  2. Hadoop_MapReduce的基本应用
  3. linux 内核定时器 3.11 版本,Linux内核定时器简单使用
  4. vb.net 打开ie 传参数_FF与IE对javascript和CSS的区别?
  5. 1026. 程序运行时间(15)
  6. java 构造函数 单例_Java中的私有构造函数和单例类 - Break易站
  7. 【js】数组的splice方法和slice方法的区别
  8. 【NOIP2015】【Luogu2615】神奇的幻方(模拟填数)
  9. 批量导出Excel图表为图片
  10. windows下安装linux环境
  11. 网络安全-渗透测试前置知识
  12. 链表实现直接选择排序
  13. LoRa网关的特点及应用
  14. 04-Redis 数据持久化实践
  15. Python网络爬虫第一课----网络爬虫之数据解析方式大全
  16. 前端性能优化——字体文件压缩
  17. 零数据分析实习经历如何秋招?
  18. 一位中科院自动化研究所博士毕业论文的致谢
  19. opengl 多边形线框_OpenGL - 在纹理多边形上创建边框
  20. Python的自省(学习笔记)

热门文章

  1. 【Windows 问题系列第 8 篇】如何查看电脑磁盘属于固态盘还是机械硬盘?
  2. [裴礼文数学分析中的典型问题与方法习题参考解答]4.5.1
  3. swfkit打包swf文件步骤(图文教程)
  4. 大白菜装机教程win10_详解戴尔电脑一键重装系统win10教程
  5. 七鑫易维彭凡演讲实录:眼球追踪技术让VR更“人性”
  6. 编写短信验证码(Java基础)
  7. 3个月备战政治数学,你成功上岸了么?
  8. 【青少年编程】【三级】接苹果
  9. 希尔排序实现与复杂度、稳定性分析
  10. Pyecharts 折线图与堆积柱状图结合的组合图绘画,折线图数据点在柱状图柱中心