You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

定时批处理脚本需求:重命名最新CSV并清理指定文件

解决方案:定时批处理脚本处理sFTP接收的CSV文件

Hey there! Let's build a batch script that handles your CSV file workflow exactly as you requested, plus set it up to run automatically on a schedule. Here's the step-by-step breakdown:

完整批处理脚本

Save this as Process_CSV.bat (you can name it whatever you like):

@echo off
setlocal enabledelayedexpansion

:: 替换为你的sFTP文件接收文件夹路径
set "TARGET_DIR=C:\Your\SFTP\Receive\Folder"

:: 步骤1:删除已存在的extract.csv
if exist "%TARGET_DIR%\extract.csv" (
    del "%TARGET_DIR%\extract.csv"
    echo Deleted existing extract.csv
) else (
    echo No existing extract.csv found to delete
)

:: 步骤2:找到最新的.csv文件并重命名为extract.csv
set "LATEST_FILE="
for /f "delims=" %%f in ('dir /b /o-d "%TARGET_DIR%\*.csv"') do (
    if not defined LATEST_FILE (
        set "LATEST_FILE=%%f"
        goto :rename_file
    )
)

:rename_file
if defined LATEST_FILE (
    ren "%TARGET_DIR%\!LATEST_FILE!" "extract.csv"
    echo Renamed latest CSV file !LATEST_FILE! to extract.csv
) else (
    echo No CSV files found in the target directory
)

:: 步骤3:删除所有以SL开头的文件
del "%TARGET_DIR%\SL*.*"
echo Deleted all files starting with SL

endlocal

脚本细节说明

  • @echo off:关闭命令行的默认命令输出,让脚本运行过程更整洁
  • setlocal enabledelayedexpansion:启用延迟变量扩展,确保循环中能正确获取最新的文件变量
  • TARGET_DIR:务必替换成你的实际sFTP文件接收文件夹路径
  • 步骤1:检查extract.csv是否存在,存在则删除并给出提示;不存在也会告知状态
  • 步骤2:用dir /b /o-d命令按修改时间倒序列出所有CSV文件,取第一个(最新的)进行重命名。如果没有找到任何CSV文件,会给出明确提示
  • 步骤3:通过通配符SL*.*删除所有以SL开头的文件(如果只想删除CSV格式的,可改成SL*.csv

设置定时执行(Windows任务计划程序)

  1. 打开任务计划程序,点击「创建基本任务」
  2. 给任务起个清晰的名字(比如「自动处理SFTP CSV文件」),点击下一步
  3. 选择触发频率(每天、每周、每隔几小时等),设置具体执行时间,点击下一步
  4. 选择「启动程序」选项,点击下一步
  5. 在「程序或脚本」栏选择你保存的批处理脚本,点击完成
  6. (可选)在任务的「设置」选项卡中勾选「不管用户是否登录都要运行」,确保脚本能在后台稳定执行

内容的提问来源于stack exchange,提问作者Saif D.

火山引擎 最新活动