BATPowerShell实现本地文件自动上传FTP服务器

运维工作中,经常需要一些脚本来实现自动化,今天分享本地文件自动上传FTP的两种解决办法:

一、使用BAT自动上传FTP

使用批处理(BAT)命令文件将本地文件夹内容上传到FTP服务器需要使用Windows自带的命令行工具,如ftp命令。以下是详细的操作步骤:

创建批处理文件:

首先,你需要创建一个新的文本文件,将其扩展名更改为 .bat。你可以将其命名为upload_to_ftp.bat或其他你喜欢的名字。

编辑批处理文件:

使用文本编辑器(如Notepad)打开批处理文件。在其中输入以下内容:

@echo off
setlocalREM 配置FTP服务器相关信息
set FTP_HOST=ftp.example.com
set FTP_USER=your_username
set FTP_PASS=your_password
set LOCAL_FOLDER=C:\path\to\local\folder
set FTP_FOLDER=/remote/folderREM 创建一个包含FTP命令的临时文本文件
echo open %FTP_HOST% > ftp_commands.txt
echo %FTP_USER% >> ftp_commands.txt
echo %FTP_PASS% >> ftp_commands.txt
echo cd %FTP_FOLDER% >> ftp_commands.txt
echo bin >> ftp_commands.txt
echo lcd %LOCAL_FOLDER% >> ftp_commands.txt
echo mput *.* >> ftp_commands.txt
echo disconnect >> ftp_commands.txt
echo quit >> ftp_commands.txtREM 使用ftp命令执行上传
ftp -s:ftp_commands.txtREM 删除临时文本文件
del ftp_commands.txtendlocal
@echo on

请注意,上述代码中需要替换以下值:

  • FTP_HOST: FTP服务器的主机名或IP地址。
  • FTP_USER: 连接到FTP服务器的用户名。
  • FTP_PASS: 对应的密码。
  • LOCAL_FOLDER: 本地文件夹的路径,你想要上传其中的内容。
  • FTP_FOLDER:在FTP服务器上你想要上传到的远程文件夹路径。

运行批处理文件:

保存批处理文件后,双击运行它。它将自动执行一系列FTP命令,将本地文件夹的内容上传到FTP服务器的指定文件夹中。
请确保在执行此操作之前,你已经测试过FTP服务器的连接和登录信息。另外,考虑到安全性,避免在批处理文件中明文写入密码,最好是使用安全的方式来存储和传递敏感信息。
在这里插入图片描述

二、使用BAT自动上传FTP

使用 PowerShell 脚本将本地文件夹内容上传到FTP服务器非常方便。以下是详细的操作步骤:

创建 PowerShell 脚本:

首先,你需要创建一个新的文本文件,将其扩展名更改为 .ps1。你可以将其命名为upload_to_ftp.ps1或其他你喜欢的名字。

编辑 PowerShell 脚本:

使用文本编辑器(如Notepad)打开 PowerShell 脚本文件。在其中输入以下内容:

# 配置FTP服务器相关信息
$ftpHost = "ftp.example.com"
$ftpUser = "your_username"
$ftpPass = "your_password"
$localFolder = "C:\path\to\local\folder"
$ftpFolder = "/remote/folder"# 创建FTP请求对象
$ftpRequest = [System.Net.FtpWebRequest]::Create("ftp://$ftpHost$ftpFolder")
$ftpRequest.Credentials = New-Object System.Net.NetworkCredential($ftpUser, $ftpPass)
$ftpRequest.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile# 获取本地文件列表
$files = Get-ChildItem $localFolder# 逐个上传文件
foreach ($file in $files) {$filePath = $file.FullName$ftpRequest.UseBinary = $true$ftpStream = $ftpRequest.GetRequestStream()$fileStream = [System.IO.File]::OpenRead($filePath)$buffer = New-Object byte[] 1024$count = $fileStream.Read($buffer, 0, 1024)while ($count -gt 0) {$ftpStream.Write($buffer, 0, $count)$count = $fileStream.Read($buffer, 0, 1024)}$ftpStream.Close()$fileStream.Close()
}

请注意,上述代码中需要替换以下值:

  • $ftpHost: FTP服务器的主机名或IP地址。
  • $ftpUser: 连接到FTP服务器的用户名。
  • $ftpPass: 对应的密码。
  • $localFolder: 本地文件夹的路径,你想要上传其中的内容。
  • $ftpFolder:在FTP服务器上你想要上传到的远程文件夹路径。

运行 PowerShell 脚本:

保存 PowerShell 脚本文件后,打开 PowerShell 命令行界面(Powershell 或 Windows Terminal),使用 cd 命令切换到脚本所在的文件夹,然后运行以下命令:

Set-ExecutionPolicy RemoteSigned
.\upload_to_ftp.ps1

如果提示需要确认执行策略,请输入 Y 来确认。

推荐阅读:
Windows可以安装Ubuntu,Ubuntu上也可以安装Powershell

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/107843.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT基础使用:组件和代码关联(信号和槽)

自动关联 ui文件在设计环境下,能看到的组件可以使用鼠标右键选择“转到槽”就是开始组件和动作关联。 在自动关联这个过程中软件自动动作的部分 需要对前面头文件进行保存,才能使得声明的函数能够使用。为了方便,自动关联时先对所有文件…

javaee idea创建maven项目,然后创建servlet

idea创建maven项目 参考我的上一篇博客点击查看 创建servlet 步骤一 引入依赖 步骤二 新建directory并设置mark directory as 步骤三 新建package和servlet

达梦数据库分区表介绍

概述 本文将对达梦数据库分区表概念、创建、维护进行介绍。 1.分区表概念 1.1 分区表使用场景 近几年,随着移动支付快速发展,银行交易系统中【移动小微支付场景】使用越来越多,系统中流水账单表数据量巨大,往往上TB。 为了提高…

Redis使用

环境配置 代码实现 Java public CoursePublish getCoursePublishCache(Long courseId){//查询缓存Object jsonObj redisTemplate.opsForValue().get("course:" courseId);if(jsonObj!null){String jsonString jsonObj.toString();System.out.println("从缓…

构建与应用大数据环境:从搭建到开发与组件使用的全面指南

文章目录 环境搭建开发与组件使用性能优化与监控安全与隐私总结 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:大数据系列 ✨文章内容: 🤝希望作者…

物种气候生态位动态量化与分布特征模拟

在全球气候快速变化的背景下,理解并预测生物种群如何应对气候变化,特别是它们的地理分布如何变化,已经变得至关重要。利用R语言进行物种气候生态位动态量化与分布特征模拟,不仅可以量化描述物种对环境的需求和适应性,预…

使用 wxPython 和 pymupdf进行 PDF 加密

PDF 文件是一种常见的文档格式,但有时候我们希望对敏感信息进行保护,以防止未经授权的访问。在本文中,我们将使用 Python 和 wxPython 库创建一个简单的图形用户界面(GUI)应用程序,用于对 PDF 文件进行加密…

Apache Paimon 实时数据湖 Streaming Lakehouse 的存储底座

摘要:本文整理自阿里云开源大数据表存储团队负责人,阿里巴巴高级技术专家李劲松(之信),在 Streaming Lakehouse Meetup 的分享。内容主要分为四个部分: 流计算邂逅数据湖 Paimon CDC 实时入湖 Paimon 不止…

MLCC产生噪音的原因及解决方案

1.内部构造及工作原理 MLCC是Multilayer Ceramic Capacitor多层片式陶瓷电容 决定电容容值大小的主要参数: 真空介电率 相对介电常数K:和MLCC使用材料有关的常数 有效面积S 介电层厚度d 堆叠层数N 所以面积越大堆叠层数越多的MLCC容值越高 2.MLCC产生啸…

SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)

在上一篇文章,讲了服务的注册和发现。在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbonrestTemplate,另一种是feign。在这一篇文章…

提高企业会计效率,选择Manager for Mac(企业会计软件)

作为一家企业,良好的财务管理是保持业务运转的关键。而选择一款适合自己企业的会计软件,能够帮助提高会计效率、减少错误和节约时间。在众多的选择中,Manager for Mac(企业会计软件)是一款值得考虑的优秀软件。 首先,Manager for…

【原创】jmeter并发测试计划

bankQPS 创建线程组 设置并发参数 HTTP请求GET 添加HTTP请求 GET请求 查看结果树 HTTP请求 POST 添加HTTP请求 参数必须设置头信息格式: 添加HTTP头信息 查看结果树 可以选择,仅查看错误日志 汇总报告

基于微信小程序的宠物领养平台的设计与实现(Java+spring boot+微信小程序+MySQL)

获取源码或者论文请私信博主 演示视频: 基于微信小程序的宠物领养平台的设计与实现(Javaspring boot微信小程序MySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java…

【项目经理】项目管理杂谈

杂谈 1. 走上管理岗位,别再自己埋头干了2. 如何更好地管理项目进度3. 管理是“管事”而不是“管人”4. 让领导欣赏的十个沟通技巧在这里插入图片描述 1. 走上管理岗位,别再自己埋头干了 2. 如何更好地管理项目进度 3. 管理是“管事”而不是“管人” 4. 让…

(动态规划) 剑指 Offer 48. 最长不含重复字符的子字符串 ——【Leetcode每日一题】

❓剑指 Offer 48. 最长不含重复字符的子字符串 难度:中等 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为…

用Python写一个武侠游戏

前言 在本教程中,我们将使用Python写一个武侠类的游戏,大的框架全部搭好了,很多元素都可以自己添加,让游戏更丰富 📝个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列: ☄️爬虫JS逆向系列专栏 -…

JavaScript设计模式(一)——构造器模式、原型模式、类模式

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

R语言画样本不均衡组的箱线图

# 导入 ggplot2 包 library(ggplot2)# 示例数据框&#xff0c;包含数值数据和分组信息 data <- data.frame(Group c(rep("Group A",10), rep("Group B",15),rep("Group C",20)),Value c(rnorm(10, mean 10, sd 2),rnorm(15, mean 15, sd…

【Redis】Redis是什么、能干什么、主要功能和工作原理的详细讲解

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

《golang设计模式》第二部分·结构型模式-03-组合模式(Composite)

文章目录 1. 概述1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 将叶子节点和复合节点组合起来&#xff0c;定义一个抽象接口遍历他们 1.1 角色 Component&#xff08;抽象构件&#xff09;&#xff1a;为叶子构件和复合构件声明接口&#xff0c;定义了结构…