如何在PowerShell或Batch中批量迁移mainFolder子文件夹内的文本文件?
没问题,我来给你两种实用的解决方案,分别用PowerShell和Batch脚本实现,操作起来都很简单:
PowerShell 实现方法
PowerShell在文件批量操作上非常灵活,语法也直观,推荐优先用这个:
# 先确保目标文件夹存在,不存在就自动创建 if (-not (Test-Path "targetFolder")) { New-Item -ItemType Directory -Path "targetFolder" | Out-Null } # 递归查找mainFolder下所有子文件夹里的文本文件,移动到targetFolder # 加上-WhatIf可以先预览操作,确认没问题再删掉这个参数执行实际移动 Get-ChildItem -Path "mainFolder" -Filter "*.txt" -Recurse -File | Move-Item -Destination "targetFolder" -WhatIf
小提示:
- 如果想复制而不是移动文件,把
Move-Item换成Copy-Item就行 - 要是遇到重名文件,加上
-Force参数可以直接覆盖(不加的话会弹出确认提示) - 如果你的文本文件不是
.txt后缀,把-Filter "*.txt"改成对应的后缀,比如*.md或者*.log
Batch 脚本实现方法
如果你习惯用CMD的批处理,这个脚本也能搞定:
@echo off :: 定义源文件夹和目标文件夹路径 set "source=mainFolder" set "target=targetFolder" :: 检查目标文件夹是否存在,不存在则创建 if not exist "%target%" mkdir "%target%" :: 递归遍历源文件夹下所有子文件夹的文本文件,移动到目标文件夹 :: /Y 参数会自动覆盖重名文件,不需要手动确认 for /r "%source%" %%f in (*.txt) do move /Y "%%f" "%target%"
小提示:
- 要复制文件的话,把
move换成copy即可 - 同样,修改
*.txt可以匹配其他后缀的文本文件
内容的提问来源于stack exchange,提问作者nh3
相关产品推荐
相关产品推荐

