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.mzph.cn/news/48399.shtml

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

相关文章

【卷积神经网络】经典网络之 LeNet-5, AlexNet 与 VGG-16

随着计算机硬件的升级与性能的提高,运算量已不再是阻碍深度学习发展的难题。卷积神经网络(Convolution Neural Network,CNN)是深度学习中一项代表性的工作,其雏形是 1998 年 LeCun 提出的 LeNet-5 模型。如今&#xff…

Python爬虫——scrapy_日志信息以及日志级别

日志级别(由高到低) CRITICAL: 严重错误 ERROR: 一般错误 WARNING: 警告 INFO: 一般警告 DEBUG: 调试信息 默认的日志等级是DEBUG 只要出现了DEBUG或者DEBUG以上等级的日志,那么这些…

[oneAPI] 基于BERT预训练模型的SQuAD问答任务

[oneAPI] 基于BERT预训练模型的SQuAD问答任务 Intel Optimization for PyTorch and Intel DevCloud for oneAPI基于BERT预训练模型的SQuAD问答任务语料介绍数据下载构建 模型 结果参考资料 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Int…

回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计参考资料 效果一览 基本…

【24择校指南】华东师范大学计算机考研考情分析

华东师范大学(B) 考研难度(☆☆☆☆) 内容:23考情概况(拟录取和复试分数人数统计)、院校概况、23考试科目、23复试详情、各科目及专业考情分析。 正文2563字,预计阅读:3分钟。 2023考情概况…

机器学习深度学习——NLP实战(自然语言推断——注意力机制实现)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——NLP实战(自然语言推断——数据集) 📚订阅专栏:机器学习&…

C# 读取pcd、ply点云文件数据

最近研究了下用pcl读取点云数据,又做了个C#的dll,方便读取,同样这个dll基于pcl 最新版本1.13.1版本开发。 上次做的需要先得到点云长度,再获取数据。这次这个定义了一个PointCloudXYZ类来存数据。将下面的dll拷贝到可执行目录下&a…

Docker详解

文章目录 Docker详解一、Docker简介什么是容器 ?容器技术有哪些优点 ?什么是Docker ?Docker的特点Docker的使用场景 二、Docker的基本组成Docker 客户端 / 守护进程Docker Image 镜像Docker Container 容器Docker Registry 仓库 三、Docker 依…

嵌入式系统中如何选择RTC电池?

RTC(Real Time Clock)是一种用于提供系统时间的独立定时器,它可以在系统断电或低功耗模式下继续运行,只需要一个后备电池作为供电源。在嵌入式系统中,选择合适的RTC电池时非常关键的,它会影响系统时间的准确…

二、SQL注入之联合查询

文章目录 1、SQL注入原理2、SQL注入的原因3、SQL注入的危害4、SQL注入基础4.1 MySQL相关4.2 SQL注入流程: 5、联合注入实例基本步骤6、总结 1、SQL注入原理 SQL注入(Sql Injection)就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串&…

【从零学习python 】56. 异常处理在程序设计中的重要性与应用

文章目录 异常的概念读取文件异常try...except语句try...else语句try...finally语句 进阶案例 异常的概念 在程序运行过程中,由于编码不规范或其他客观原因,可能会导致程序无法继续运行,此时就会出现异常。如果不对异常进行处理,…

[C++] string类常用接口的模拟实现

文章目录 1、前言2、遍历2.1 operator[ ]下标方式2.2 迭代器2.3 范围for2.4 c_str 3、容量相关3.1 size(大小)3.2 capacity(容量)3.3 empty(判空)3.4 clear(清理)3.5 reserve3.6 res…

最新AI系统ChatGPT网站程序源码/搭建教程/支持GPT4.0/Dall-E2绘画/支持MJ以图生图/H5端/自定义训练知识库

一、正文 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。 那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧&#xff01…

SpringMVC之入门搭建框架

文章目录 前言一、SpringMVC简介1.什么是MVC2.什么是SpringMVC3.SpringMVC的特点 二、搭建框架——HelloWorld1.创建maven工程(web项目)2.配置web.xml3.配置springMVC.xml4.创建请求控制器 总结 前言 基础小白第一次走进SpringMVC:了解什么是…

LinkedList

LinkedList的模拟实现(底层是一个双向链表)LinkedList使用 LinkedList的模拟实现(底层是一个双向链表) 无头双向链表:有两个指针;一个指向前一个节点的地址;一个指向后一个节点的地址。 节点定…

vim 配置环境变量与 JDK 编译器异常

vim 配置环境变量 使用 vim 打开系统中的配置信息(不存在将会创建): vim ~/.bash_profile 以配置两个版本 JDK 为例(前提是已安装 JDK),使用上述命令打开配置信息: 输入法调成英文,输入 i&…

Python爬取斗罗大陆全集

打开网址http://www.luoxu.cc/dmplay/C888H-1-265.html F12打开Fetch/XHR,看到m3u8,ts,一眼顶真,打开index.m3u8 由第一个包含第二个index.m3u8的地址,ctrlf在源代码中一查index,果然有,不过/…

解决:(error) ERR unknown command shutdow,with args beginning with

目录 一、遇到问题 二、出现问题的原因 三、解决办法 一、遇到问题 要解决连接redis闪退的问题,按照许多的方式去进行都没有成功,在尝试使用了以下的命名去尝试时候,发现了这个问题。 二、出现问题的原因 这是一个粗心大意导致的错误&am…

【unity小技巧】Unity2D TileMap+柏林噪声生成随机地图(附源码)

文章目录 前言柏林噪声素材导入Rule Tile配置生成随机地图问题扩展问题添加植被源码参考完结 前言 我的上一篇文章介绍了TileMap的使用,主要是为我这篇做一个铺垫,看过上一篇文章的人,应该已经很好的理解TileMap的使用了,这里我就…

【学习日记】【FreeRTOS】延时列表的实现

前言 本文在前面文章的基础上实现了延时列表,取消了 TCB 中的延时参数。 本文是对野火 RTOS 教程的笔记,融入了笔者的理解,代码大部分来自野火。 一、如何更高效地查找延时到期的任务 1. 朴素方式 在本文之前,我们使用了一种朴…