如何批量更新文件夹下(包含子文件夹)的文件名称 并且移动到指定目录

批量更新文件名称为文件名称+文件夹多级目录名称

Get-ChildItem "E:\allXML\upload" -Recurse | ForEach-Object {
# 获取原文件名(不包括扩展名)
$originalName = $_.BaseName
# 获取文件夹的路径并去掉根路径部分(例如 'C:\Files')
$folderPath = $_.DirectoryName -replace [regex]::Escape("E:\allXML\upload"), ""
# 将文件夹路径中的反斜杠替换为下划线
$folderPath = $folderPath -replace '\\', '_'
# 生成新的文件名
$newName = $originalName + "_" + $folderPath + $_.Extension
# 生成新路径
$newPath = $_.DirectoryName + "\" + $newName
# 重命名文件
Rename-Item $_.FullName -NewName $newPath
}

批量移动文件夹下的文件到指定目录下

# 设置源文件夹和目标文件夹路径
$sourceFolder = "E:\allXML\upload" # 在这里指定原文件夹路径
$destinationFolder = "E:\allXML\all" # 在这里指定目标文件夹路径

# 获取源文件夹及其子文件夹中的所有文件,并将其移动到目标文件夹
Get-ChildItem -Path $sourceFolder -Recurse | ForEach-Object {
# 如果是文件(不是文件夹),就移动
if ($_.PSIsContainer -eq $false) {
# 构建目标文件的完整路径
$destinationPath = Join-Path -Path $destinationFolder -ChildPath $_.Name
# 移动文件到目标文件夹
Move-Item -Path $_.FullName -Destination $destinationPath
}
}

 执行命令:

windows+X

 

打开:windows powerShell   执行命令

posted @ 2024-11-28 11:46  恃才傲物123  阅读(199)  评论(0)    收藏  举报