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

Windows下PowerShell批量复制文件并按文件夹名规则重命名求助

PowerShell批量复制重命名脚本实现

核心脚本代码

# 定义源文件与目标根目录路径
$sourceFile = "T:\Tests2022\testscript.txt"
$rootDir = "T:\Tests2022"

# 遍历符合命名规则的子文件夹并处理
Get-ChildItem -Path $rootDir -Directory | Where-Object {
    # 匹配「firstname lastname_xxxxxxx_」格式,捕获名字前缀部分
    $_.Name -match '^([A-Za-z]+ [A-Za-z]+)_\d+_$'
} | ForEach-Object {
    $namePrefix = $matches[1]
    $destFileName = "$namePrefix`_testscript.txt"
    $destPath = Join-Path -Path $_.FullName -ChildPath $destFileName

    # 复制并覆盖已有文件(无需覆盖可移除-Force参数)
    Copy-Item -Path $sourceFile -Destination $destPath -Force
    Write-Host "已完成:$destPath"
}

脚本关键说明

  • Get-ChildItem -Directory:仅遍历根目录下的子文件夹,排除文件
  • 正则表达式^([A-Za-z]+ [A-Za-z]+)_\d+_$:精准匹配文件夹命名规则,通过捕获组提取firstname lastname前缀
  • -Force:强制覆盖目标文件夹中已存在的同名文件,根据实际需求选择是否保留

每两周自动化执行方案

方案1:Windows任务计划程序(可视化操作)

  1. 将上述脚本保存为CopyTestScript.ps1,例如存放在T:\Scripts目录
  2. 打开「任务计划程序」,点击「创建基本任务」
  3. 设置任务名称(如「批量复制测试脚本」),点击下一步
  4. 触发器选择「每周」,设置每2周执行一次,指定执行时间(比如每周五凌晨2点),点击下一步
  5. 操作选择「启动程序」,程序/脚本输入powershell.exe,添加参数:
    -ExecutionPolicy Bypass -File "T:\Scripts\CopyTestScript.ps1"
    
    (-ExecutionPolicy Bypass用于绕过PowerShell脚本执行限制,确保脚本正常运行)
  6. 完成任务创建后,可右键任务选择「运行」测试执行效果

方案2:PowerShell命令创建定时任务(代码式操作)

如果偏好用PowerShell直接创建任务,执行以下命令:

# 创建任务动作
$taskAction = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-ExecutionPolicy Bypass -File "T:\Scripts\CopyTestScript.ps1"'
# 创建每两周周五凌晨2点执行的触发器
$taskTrigger = New-ScheduledTaskTrigger -Weekly -WeeksInterval 2 -DaysOfWeek Friday -At 2:00AM
# 注册定时任务
Register-ScheduledTask -TaskName "批量复制测试脚本" -Action $taskAction -Trigger $taskTrigger -Description "每两周自动复制testscript.txt到指定子文件夹并重命名"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:10:24