Windows 批处理获取某路径下最新创建的文件的名称

批处理获取某路径下最新创建的文件的名称

 

by:授客 QQ1033553122

echo off
setlocal enabledelayedexpansion

rem
设置文件所在目录
set src_dir=F:\Download\test

rem filename
用于存放目标文件名
set filename=""

cd /d %src_dir%
for /f %%a in ('dir /o-d /tc /b test*.html') do (
    echo
文件完整信息: %%a
    set filename=%%~na%%~xa
    echo
文件名: !filename!, 最新创建时间: %%~ta
    if not !filename! == ""  (
        goto iconv
    )
)

:iconv
iconv -f gbk -t utf-8 %filename% > "jenkins_test_report.html"
pause

说明:
setlocal enabledelayedexpansion
:开启本地环境变量延迟

扩展阅读:
批处理运行命令的机制:批处理读取命令时是按行读取的(对于for命令等,其后用一对圆括号闭合的所有语句也当作一行),在处理之前要完成必要的预处理工作,这其中就包括对该行命令中的变量(%var_name%)赋值。开启本地环境变量延迟后,在读取了一条完整的语句之后,不立即对该行的变量赋值,而是在执行某个单条语句之前再对变量进行赋值,也就是说延迟了对变量的赋值。开启本地环境变量延迟后,原有变量的界定符由 "%" 改成"!"

for
循环语法
for /f %variable IN ('command') DO command [command-parameters]

dir /o-d /tc /b test*.html
:按文件创建时间降序显示test开头的.html文件

dir
命令选项
/b     
使用空格式(没有标题信息或摘要)
/o     
用分类顺序列出文件。 排列顺序: 按日期/时间(从先到后) -  反转顺序的前缀
/t     
控制显示或用来分类的时间字符域。 创建时间 上次访问时间  w  上次写入的时间

例:
dir /od
:按日期/时间升序显示
dir /o-d
:按日期/时间降序显示
dir /tw: 
时间列输出为修改时间(默认)

if not !filename! == ""  (
    goto iconv
)
如果变量filename不为空,则表示取到了值,
goto iconv
跳转到iconv标签,继续执行标签后的语句
    
%%a
:文件完整信息
%%~da
:文件所在驱动器信息
%%~pa
:文件所在路径信息
%%~na
:文件名信息
%%~xa
:文件后缀信息
%%~za
:文件大小信息
%%~ta
:文件修改时间信息
%%~dpa
:文件所在驱动器和所在路径信息
%%~nxa
:文件名及后缀信息
%%~pnxa
:文件所在路径及文件名和后缀信息
%%~dpna
:文件驱动器、路径、文件名信息
%%~dpnxa
:文件驱动器、路径、文件名、后缀信息

rem
注释语句

常见问题:
cmd
中的编码方式为ANSI,如果中文不是此编码方式则会出现乱码。

解决方法:编辑批处理文件时,以ANSI方式编辑即可(windows自带的记事本保存文件时即可选择编码方式为ANSI

 

转载于:https://www.cnblogs.com/shouke/p/10157633.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值