gpt4 book ai didi

powershell - 如何使用 PowerShell 合并/ 'flatten' 文件夹结构 - 递归

转载 作者:行者123 更新时间:2023-12-04 12:41:58 27 4
gpt4 key购买 nike

我正在寻求帮助来重组许多子文件夹中的大量文件。

示例来源:

folderX
aaa.txt
bbb.txt
folderY
ccc.txt
folderZ
ddd.txt
eee.txt

理想结果:
folderX_aaa.txt
folderX_aaa.txt
folderX_bbb.txt
folderY_ccc.txt
folderY_folderZ_ddd.txt
eee.txt

我希望这是有道理的!我使用 Plex 来管理一些媒体,它不喜欢某些用途的子文件夹(例如 featurettes 目录)。

我想使用 PowerShell,因为我已经有点熟悉它 - 但欢迎任何技术或建议。

提前致谢 :)

最佳答案

这是一个单管道解决方案:

$targetDir = Convert-Path '.' # Get the current (target) directory's full path.

Get-ChildItem -LiteralPath $targetDir -Directory | # Loop over child dirs.
Get-ChildItem -Recurse -File -Filter *.txt | # Loop over all *.txt files in subtrees of child dirs.
Move-Item -Destination { # Move to target dir.
# Construct the full target path from the target dir.
# and the relative sub-path with path separators replaced with "_" chars.
Join-Path $targetDir `
($_.Fullname.Substring($targetDir.Length + 1) -replace '[/\\]', '_')
} -Whatif
-WhatIf预览移动操作;将其移除以执行实际移动。
正则表达式 [/\\]匹配 /\作为路径分隔符,使解决方案跨平台。

关于powershell - 如何使用 PowerShell 合并/ 'flatten' 文件夹结构 - 递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57846927/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com