PowerShell代码修改文件名为时间

利用PowerShell代码修改文件名为时间,会把代码文件同目录下的对应格式文件文件名修改为指定类型的时间。

复制代码到txt,另存为ANSI编码,后缀名修改为ps1。

右键运行报错参考Win10系统PowerShell执行.ps1文件

# 文件后缀名
$files = Get-ChildItem -Path . -Filter *.mp4

foreach ($file in $files) {
    # CreationTime:创建时间
    # LastWriteTime:最后修改时间
    $filetime = $file.CreationTime
    # $filetime = $file.LastWriteTime

    $filetype = $file.Extension
    Write-Host "文件 $($file.Name) 的创建时间是:$filetime"

    # 设置变量,使用变量时需要用一对 {} 包起来
    $original_date = $filetime.ToString("yyyy-MM-dd-HH-mm-ss")

    # ==========日期按照YYYY-MM-DD格式显示======================
    $year = $original_date.Substring(0, 4)
    $month = $original_date.Substring(5, 2)
    $day = $original_date.Substring(8, 2)
    $current_date = "$year-$month-$day"

    # ==========时间按照HH:MM:SS格式显示========================
    $hour = $original_date.Substring(11, 2)
    $minute = $original_date.Substring(14, 2)
    $second = $original_date.Substring(17, 2)

    # 处理小时数是个位数的情况
    if ($hour.Length -eq 1) {
        $hour = "0$hour"
    }

    $current_time = "${hour}:$minute"

    # ==========日期时间按照YYYYMMDD_HHMMSS格式显示=============
    $current_date_time_stamp = "${year}${month}${day}_${hour}${minute}${second}"
    Write-Host "文件 $($file.Name) 的创建时间名称是:$current_date_time_stamp"

    $new_name = "$current_date_time_stamp$filetype"
    Write-Host "文件 $($file.Name) 的新名称是:$new_name"

    Rename-Item $file.FullName -NewName "$new_name"
}
pause

运行示例

效果:

bat时间只能精确到分钟无法到秒数。bat代码示例:

@echo off
setlocal enabledelayedexpansion

:: 文件类型
for %%f in (*.png *.jpg) do (
    set file=%%f
    set filetime=%%~tf
    set filetype=%%~xf
    echo 文件 !file! 的创建时间是:!filetime!

    :: 设置变量,使用变量时需要用一对!包起来
    set ORIGINAL_DATE=!filetime:/=-!

    :: @echo =========日期按照YYYY-MM-DD格式显示======================
    set YEAR=!ORIGINAL_DATE:~0,4!
    set MONTH=!ORIGINAL_DATE:~5,2!
    set DAY=!ORIGINAL_DATE:~8,2!
    set CURRENT_DATE=!YEAR!-!MONTH!-!DAY!

    :: @echo =========时间按照HH:MM:SS格式显示========================
    set HOUR=!ORIGINAL_DATE:~11,2!
    set MINUTE=!ORIGINAL_DATE:~14,2!

    :: 处理小时数是个位数的情况
    if "!HOUR:~1,1!"=="" set HOUR=0!HOUR!

    set CURRENT_TIME=!HOUR!:!MINUTE!

    :: @echo =========日期时间按照YYYYMMDD_HHMMSS格式显示=============
    set CURRENT_DATE_TIME_STAMP=!YEAR!!MONTH!!DAY!_!HOUR!!MINUTE!
    echo 文件 !file! 的创建时间名称是:!CURRENT_DATE_TIME_STAMP!

    set new_name=!CURRENT_DATE_TIME_STAMP!!filetype!
    echo 文件 !file! 的新名称是:!new_name!

    ren "!file!" "!new_name!"
)

pause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值