zoukankan      html  css  js  c++  java
  • Windows 批处理获取某路径下最新创建的文件的名称

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

     

    by:授客 QQ1033553122

    echo off
    setlocal enabledelayedexpansion

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

    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

  • 相关阅读:
    JavaScript中的闭包
    SQL 备忘
    SqlServer 2005 升级至SP2过程中出现"身份验证"无法通过的问题
    unable to start debugging on the web server iis does not list an application that matches the launched url
    Freebsd 编译内核
    Freebsd 6.2中关于无线网络的设定
    【Oracle】ORA01219
    【Linux】Windows到Linux的文件复制
    【Web】jar命令行生成jar包
    【Linux】CIFS挂载Windows共享
  • 原文地址:https://www.cnblogs.com/shouke/p/10157633.html
Copyright © 2011-2022 走看看