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

使用PowerShell按指定规则复制并重命名特定格式文件

PowerShell文件复制与自定义重命名方案

这里有个可以直接复用的PowerShell脚本,刚好匹配你的需求——把指定文件复制到目标位置,同时按照要求的规则重命名。我会把每一步的逻辑讲清楚,方便你调整:

完整脚本示例

# 替换成你的原文件实际路径
$originalFilePath = "C:\Your\Original\File\Path\KE1_F00177_077_00_50"
# 替换成你要复制到的目标文件夹路径
$destinationFolder = "C:\Your\Target\Folder"

# 获取文件对象,方便读取属性
$file = Get-Item $originalFilePath

# 从原文件名里提取F00177部分
$fSegment = ($file.BaseName -split "_")[1]

# 从文件修改时间提取年-月格式(2018_02)
$yearMonth = $file.LastWriteTime.ToString("yyyy_MM")

# 把修改时间格式化为你需要的yyyy.MM.dd.HH.mm样式
$modTimeStr = $file.LastWriteTime.ToString("yyyy.MM.dd.HH.mm")

# 按照要求拼接新文件名
$newFileName = "_$fSegment`_$yearMonth`_$modTimeStr`_$($file.BaseName)"

# 拼接完整的目标文件路径
$destinationPath = Join-Path -Path $destinationFolder -ChildPath $newFileName

# 执行复制操作,-Force可以覆盖已存在的同名文件
Copy-Item -Path $originalFilePath -Destination $destinationPath -Force

关键步骤说明

  • 路径定义:开头的两个变量需要你替换成自己的实际路径,确保PowerShell能找到原文件和目标文件夹。
  • 提取文件名片段:原文件名KE1_F00177_077_00_50用-split "_"拆分成数组后,索引1的元素就是F00177,这一步是动态提取的,就算文件名前缀有变化也能适配。
  • 时间格式处理:脚本直接读取文件的LastWriteTime(修改时间),自动转换成你需要的两种格式——2018_02和2018.02.21.10.30,不需要手动输入时间,准确性更高。
  • 文件名拼接:严格按照你要求的格式组合新文件名,确保最终结果是_F00177_2018_02_2018.02.21.10.30_KE1_F00177_077_00_50。
  • 复制操作:Copy-Item负责把文件复制到目标位置,-Force参数可选,如果你希望覆盖目标文件夹里已有的同名文件就保留它。

手动指定修改时间的情况

如果因为某些原因,你不想用文件的实际修改时间,而是要手动指定2018.02.21.10.30,可以把脚本里的时间相关部分改成这样:

# 手动定义修改时间
$customModTime = [DateTime]"2018-02-21 10:30:00"
$yearMonth = $customModTime.ToString("yyyy_MM")
$modTimeStr = $customModTime.ToString("yyyy.MM.dd.HH.mm")

这样就能完全按照你指定的时间来生成新文件名了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:49:45