利用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