我有一个脚本,将复制,我已经过滤,并复制到一个新的目录与名称加上LastWriteTime拷贝项目和重命名为一个特定的父目录在PowerShell中
$srcdir = "Z:\Production500\000600"
$destdir = "X:\Standards\Water Resources\GIS\_Water Resources GIS Database\_Unprocessed_Raw_data"
$folders = Get-ChildItem -Recurse "Z:\Production500\000600" -Filter "Water Resources","GIS" -Recurse
$i=1
$folders | % ($_) {cp $_.FullName -Destination "$destdir\$($_.Name + $_.LastWriteTime.toString("_yyyy_MM_dd_") + $i)" -recurse; $i++}
目录列表
脚本的伟大工程,复制,我需要到以下格式的确切文件夹和文件:
.\GIS_2017_07_09_1
.\GIS_2017_07_10_2
.\GIS_2017_07_10_3
取而代之的是柜台的,我更愿意对从父目录的一个结尾的名称。例如,如果$文件夹是这个名单:
Directory: Z:\Production500\000600\B000676\Design\004\Chisholm Park\Water Resources
Directory: Z:\Production500\000600\B000667\Design\001\Water Resources
Directory: Z:\Production500\000600\B000663\Design\001\Water Resources
我想改名为这个复制的项目:
.\GIS_2017_07_09_B000676
.\GIS_2017_07_10_B000667
.\GIS_2017_07_10_B000663
从而省去了柜台上的需求,也使目标更有条理。值得注意的是,B000 ###总是第三个文件夹很深。
你不需要两次get-childitem。您可以使用逗号分隔值。使用像这样'Get-ChildItem“Z:\ Production500 \ 000600”-Filter“Water Resources”,“GIS”-Recurse ' –
您确定要仅选择第三级文件夹名吗? –
是的,它总是第三。 @ Ranadip - 杜塔。并感谢您的过滤器开关提示! –