请求帮助朋友带我去google然后再访问PowerShell。我知道powershell存在大约3个小时(全新世界!)并且这个论坛已经让我非常接近我需要的一些搜索但不是所有的方式。
我希望动态地将文件夹名称添加到给定子文件夹集中的每个文件名中。
dir | rename-item -NewName {$_.Directory.Name + $_.Name}
试图阻止循环我尝试在不同的地方开启/关闭,然后查看Get-ChildItem和-Exclude让我去了 -
Get-ChildItem -Exclude LAL-* | Rename-Item -NewName {$_.Directory.Name + $_.Name}
道歉它是如此“如何”#n;但是,非常感谢任何帮助,谢谢
答案 0 :(得分:0)
我的猜测是Get-ChildItem(alias dir)也为管道提供目录名称。使用-File
开关可以避免这种情况。
我不知道如何在没有循环的情况下做到这一点。 ForEach-Object
可以合理地解释为循环结构。如果您确信要根据需要重命名文件,请从-WhatIf
cmdlet中删除Rename-Item
。
(dir -Exclude "$((Get-Location | Split-Path -Leaf) + '*.*')") |
ForEach-Object {
Rename-Item -Path $_.FullName -NewName $($_.Directory.Name + $_.Name) -WhatIf
}