bat批处理上传文件

bat批处理实现文件上传

1、清理指定文件夹下面的文件 清理历史文件.bat

@echo off
setlocal enabledelayedexpansion

REM 清理推送成功的历史检验文件
set "SUCCESS_FOLDER=D:\IQC\SUCCESS"
del /f /s /q "%SUCCESS_FOLDER%\*.*"

REM 清理推送失败的历史日志文件
set "LOG_FOLDER=D:\IQC\LOG"
del /f /s /q "%LOG_FOLDER%\*.*"

echo File delete OK.

endlocal

2、设定定时任务,定时执行 文件上传.bat

1、将文件上传.bat文件复制到D:盘目录下;
2、按 Win + R 打开“运行”对话框;
3、输入cmd打开命令行界面;
4、执行以下语句将批处理加入定时任务(如遇到被软件阻止点放行):
schtasks /create /tn "UploadFilesTask" /tr "D://文件上传.bat" /sc minute /mo 30 /st 00:00 /ru SYSTEM

3、根据指定文件路径上传文件; 文件上传.bat

@echo off
setlocal enabledelayedexpansion

REM 设置源目录和成功目录
set "logRoot=D:\IQC\LOG"
set "sourceRoot=D:\IQC"
set "successRoot=D:\IQC\SUCCESS"
set "uploadUrl=http://api/iqc/import"

REM 获取时间部分(包含毫秒)
for /f "tokens=1-4 delims=:.," %%i in ("%time%") do (
	set "hour=%%i"
	set "minute=%%j"
	set "second=%%k"
	set "millisecond=%%l"
)

REM 获取日期部分
for /f "tokens=1-3 delims=/ " %%i in ("%date%") do (
	set "year=%%i"
	set "month=%%j"
	set "day=%%k"
)

REM 补零处理
if %hour% lss 10 set "hour=0%hour%"
if %minute% lss 10 set "minute=0%minute%"
if %second% lss 10 set "second=0%second%"
if %millisecond% lss 100 set "millisecond=0%millisecond%"
if %millisecond% lss 10 set "millisecond=00%millisecond%"

REM 组合成完整时间格式
set "formattedDateTime=%year%%month%%day%_%hour%%minute%%second%%millisecond%"

REM 遍历源目录中的文件
if exist "%sourceRoot%" (
    echo Processing folder: %sourceRoot%

    REM 遍历文件夹中的所有文件
    for %%f in ("%sourceRoot%\*") do (
		REM 获取当前文件的文件名、后缀
		set "fileName=%%~nf"
		set "fileExt=%%~xf"
		REM 定义请求响应文件
		set "logFileName=%logRoot%\!fileName!_!formattedDateTime!.txt"
        REM 使用 curl 上传文件
        echo Uploading file: %%f
        curl -X POST %uploadUrl% ^
            -F "fileType=2" ^
            -F "file=@%%f" ^
            -o "!logFileName!"
        
        REM 检查上传是否成功(检查响应文件中是否包含"操作成功")
        set "logCheckResult="
		for /f "delims=" %%L in ('findstr /R /M /C:"操作成功" "!logFileName!" 2^>^&1') do (
			set "logCheckResult=%%L"
		)
		if defined logCheckResult (
            echo Upload successful for %%f
            REM 重命名文件为原文件名+时间戳格式
            set "newFileName=!fileName!_!formattedDateTime!!fileExt!"
            REM 移动并重命名文件到成功目录
            move "%%f" "%successRoot%\!newFileName!"
            REM 清理上传响应文件
            del "!logFileName!"
        ) else (
            echo Upload failed for %%f
        )
    )
) else (
    echo No folder found for the current month: %sourceRoot%
)

echo All files have been processed.

endlocal

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值