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
bat批处理实现文件上传
1651





