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

news2025/4/15 9:26:29

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

一、使用BAT自动上传FTP

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

创建批处理文件:

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

编辑批处理文件:

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

@echo off
setlocal

REM 配置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/folder

REM 创建一个包含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.txt

REM 使用ftp命令执行上传
ftp -s:ftp_commands.txt

REM 删除临时文本文件
del ftp_commands.txt

endlocal
@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.coloradmin.cn/o/915071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用mysql:5.6和 owncloud 镜像,构建一个个人网盘

一.拉取镜像 docker pull mysql:5.7 docker pull owncloud 二.创建容器 1.MySQL容器 docker run -d --name db1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456. -e MYSQL_DATABASEowncloud -e MYSQL_USERowncloud -e MYSQL_PASSWORDowncloud mysql:5.7 docker run: 创建和运行…

2023年03月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:和数 给定一个正整数序列,判断其中有多少个数,等于数列中其他两个数的和。 比如,对于数列1 2 3 4, 这个问题的答案就是2, 因为3 2 1, 4 1 3。 时间限制:10000 内存限制:65536 输入 共两行&#x…

飞天使-k8s基础组件分析-控制器

文章目录 控制器含义解释pod的标签与注释ReplicaControllerReplicaSetDeploymentsDaemonSetJobCronjob参考文档 控制器含义解释 空调遥控器知道吧ReplicationController: ReplicationController确保在任何时候都运行指定数量的pod副本。换句话说,一个ReplicationCo…

DRF ImageFiled字段时会加上域名和乱码的问题

问题描述: 一张表的image类型为imageFiled # ############################### 商品 ############################### class Category(models.Model):"""类别名称比如:螃蟹、大米、油等"""categoryname models.CharFie…

Unity 之`Physics.Raycast()`方法,射线检测

文章目录 总述参数解释形参前两个变量可以用Ray 来代替 返回值 总述 当你在Unity中使用Physics.Raycast()方法时,你实际上是在进行一种射线检测,以查看一条射线是否与场景中的碰撞体相交。这可以用来实现很多不同的功能,如点击选择物体、射击…

Windows如何安装Git

一、简介 Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。特点:项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性。 二、…

31、springboot 配置HTTP服务端口及如何通过WebServer实例动态获取项目中的HTTP端口

配置HTTP服务端口及如何通过WebServer实例动态获取项目中的HTTP端口 ★ 设置HTTP服务端口: - server.port或者SERVER_PORT环境变量——总结来说,其实就是要配置server.port外部配置属性。▲ 同样遵守如下优先级: 这些都是外部配置源&#x…

探索Vue生命周期钩子函数:从创生到销毁

Vue这个引领前端开发潮流的框架,其优雅的响应式数据绑定和组件式开发方式,使得它备受瞩目。然而,Vue的魅力绝不仅限于此,它还赋予开发者一组神奇的生命周期钩子函数,能够在组件的各个成长阶段插入自定义代码。本文将带…

css 实现四角边框样式

效果如图 此图只实现 左下与右下边角样式 右上与左上同理 /* 容器 */ .card-mini {position: relative; } /* 左下*/ .card-mini::before {content: ;position: absolute;left: 0;bottom: 0;width: 20px;height: 20px;border-bottom: 2px solid #253d64;border-left: 2px so…

赴日程序员学日语需要学多久?

现在很多国内程序员想转型做赴日IT,但是因为完全没有日语经验,又长期从事解决问题debug的工作,所以非常担心自己学不会日语。其实你的心底里可能比较担心是,投入了很多时间发现学不会文科类型的语言,自己没有学母语以外…

[保研/考研机试] KY124 二叉搜索树 浙江大学复试上机题 C++实现

题目链接&#xff1a; 二叉搜索树_牛客题霸_牛客网判断两序列是否为同一二叉搜索树序列。题目来自【牛客题霸】https://www.nowcoder.com/share/jump/437195121692722892652 描述 判断两序列是否为同一二叉搜索树序列 输入描述&#xff1a; 开始一个数n&#xff0c;(1<…

Python数据采集实战-使用BeautifulSoup框架解析HTML文档并提取所需内容(附源码和实现效果)

实现功能 使用BeautifulSoup框架解析HTML文档并提取所需内容的例子&#xff1a;假设我们要从以下HTML文档中提取所有超链接的链接地址 实现代码 from bs4 import BeautifulSoup import requests# 发送请求并获取HTML文档 url "https://www.baidu.com" response r…

c(Bua-Cpa-Thi-Val-Asn-Cys)-Pro-d-Arg-NEt2 acetate,1647120-04-4,试剂特点介绍

英文名&#xff1a;c(Bua-Cpa-Thi-Val-Asn-Cys)-Pro-d-Arg-NEt2 acetate CAS&#xff1a;1647120-04-4 1.Molecular formula&#xff1a;C44H64ClN11O10S2 2.Molecular weight&#xff1a;1006.63 3.Packaging specification&#xff1a;1g、5g、10g, flexible packaging, inc…

宠物小程序开发

在当今社会&#xff0c;宠物已成为许多人生活中不可或缺的一部分。宠物市场的持续增长为创业者提供了巨大的商机。然而&#xff0c;作为一个创业者&#xff0c;要在竞争激烈的宠物市场中脱颖而出并不容易。因此&#xff0c;开发一个专属于自己的宠物小程序成为了解决这一难题的…

Linux下的Shell编程——Shell概述和入门(一)

前言&#xff1a; Shell还是一个功能相当强大的编程语言&#xff0c;易编写、易调试、灵活性强。为了方便后续的学习&#xff0c;我们需要学习在Linux系统下的Shell编程 目录 一、Shell概述 1.Linux 提供的 Shell 解析器有 2. 默认的解析器是 bash 二、Shell 脚本入门 1.脚…

php+echarts实现数据可视化实例3

效果 全部代码 <?php include(includes/session.inc); include(includes/SQL_CommonFunctions.inc); ?> <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" …

OpenGL —— 2.2、Shader之间数据传输、向Shder传输数据

Shader OpenGL着色器&#xff08;shader&#xff09;是一种用于编写图形渲染代码的编程语言。它们在图形处理单元&#xff08;GPU&#xff09;上运行&#xff0c;用于控制渲染管线的不同阶段。 在OpenGL中&#xff0c;有两种主要类型的着色器&#xff1a;顶点着色器和片段着色器…

Linux 压缩解压(归档管理):tar命令

计算机中的数据经常需要备份&#xff0c;tar是Unix/Linux中最常用的备份工具&#xff0c;此命令可以把一系列文件归档到一个大文件中&#xff0c;也可以把档案文件解开以恢复数据。 tar使用格式 tar [参数] 打包文件名 文件 tar命令很特殊&#xff0c;其参数前面可以使用“-”&…

windows端口被占用——使用taskkill干掉不听话的进程

8080端口被占用为例 1. win R 输入 cmd 回车 进入命令行界面 2. 查看端口占用情况 netstat -aon|findstr 8080 查到8080被24308 进程占用 3. 杀手父进程 使用taskkill 干掉不听话的进程 taskkill /f /t /pid 24308 C:\Users\84869>taskkill /?TASKKILL [/S system…

用户端Web自动化测试-L2

目录&#xff1a; 高级定位-css高级定位-xpath显式等待高级使用高级控件交互方法网页 frame 与多窗口处理文件上传&#xff0c;弹框处理自动化关键数据记录电子商务产品实战 1.高级定位-css css 选择器概念 css 选择器有自己的语法规则和表达式css 定位通常分为绝对定位和相…