You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理脚本求助:删除重复行并使用变量

批处理脚本实现带日期后缀的文件去重(保留原文件)

以下是修改后的脚本,已加入变量支持,可自动提取输入文件信息并生成带当前日期后缀的去重文件,同时保留原文件:

@ECHO ON

:: 支持命令行传参,若不传参则使用固定路径
SET "InputFile=%~1"
IF NOT DEFINED InputFile SET "InputFile=C:\FM\FM_ADT_20221003.txt"

:: 获取当前日期(格式:YYYYMMDD),用PowerShell保证跨区域格式一致
FOR /F "delims=" %%A IN ('PowerShell -Command "Get-Date -Format 'yyyyMMdd'"') DO SET "CurrentDate=%%A"

:: 拆分输入文件的路径、文件名、扩展名
SET "FileDir=%~dpInputFile%"
SET "FileName=%~nInputFile%"
SET "FileExt=%~xInputFile%"

:: 生成输出文件名:原文件名 + (当前日期) + 扩展名
SET "OutputFile=%FileDir%%FileName%(%CurrentDate%)%FileExt%"

:: 生成临时PowerShell脚本
SET "PSScript=%Temp%\~tmpRemoveDupe.ps1"
IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"
ECHO Get-Content "%InputFile%" ^| Sort-Object ^| Get-Unique ^> "%OutputFile%" >> "%PSScript%"

:: 执行PowerShell脚本去重
SET "PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0"
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"

:: 删除临时脚本(可选)
DEL /Q /F "%PSScript%"

GOTO EOF

关键修改说明:

  • 输入文件灵活配置:支持通过命令行传参(比如运行脚本时输入 脚本名.bat C:\FM\FM_ADT_20221003.txt),若不传参则使用预设的固定路径
  • 统一日期格式:借助PowerShell获取YYYYMMDD格式的当前日期,避免系统区域设置导致的日期格式差异
  • 自动拆分文件信息:用批处理内置变量%~dp(路径)、%~n(文件名)、%~x(扩展名)拆分输入文件,无需手动修改文件名
  • 自动生成输出路径:基于原文件路径和当前日期拼接输出文件名,确保新文件和原文件在同一目录下
  • 可选清理临时文件:脚本末尾添加了删除临时PowerShell脚本的命令,避免临时文件堆积

内容的提问来源于stack exchange,提问作者Anita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:25:24