有没有办法将文件夹名称也放在文件名中?像这样:
Folder1\SubFolder1
FileName1.abc
Filename2.abc
Subfolder2
Filename1.abc
filename2.abc
结果:
-Folder1_SubFolder1_Filename1.abc
-Folder1_SubFolder1_Filename2.abc
-Folder2_SubFolder1_Filename1.abc
-Folder2_SubFolder1_Filename2.abc
通过此代码我只能获得文件名中的子目录。
get-childitem -Path 'D:\Temp' -recurse | Where-Object {$.Psiscontainer -eq $false} | Rename-Item -NewName {$.Directory.Name + "" + $.Name}
请告诉我。
答案1
该Directory
属性还具有一个Parent
属性。您可以像这样使用它:
Get-ChildItem 'D:\Temp' -File -Recurse | Rename-Item -NewName { $_.Directory.Parent, $_.Directory.Name, $_.Name -join '_' }
此命令只是获取文件夹及其子文件夹中的所有文件,然后继续将文件重命名为父目录名称、目录名称和文件名,并将它们连接在一起_