我有一个脚本,它将复制我过滤并复制到一个新目录中的目录列表,这个目录的名称加上LastWriteTime
$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与计数器不同,我更希望在父目录的末尾有一个名称。例如,如果$folders是以下列表:
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###始终是第三个文件夹的深度。
发布于 2017-08-16 15:16:13
让我们假设您的路径是在变量中提到的,您可以继续这样做,因为您已经提到它将始终是第三级文件夹:
您可以使用溢出文件获取文件夹名,并将其放入foreach中。
$path="Z:\Production500\000600\B000676\Design\004\Chisholm Park\Water Resources"
$srcdir = "Z:\Production500\000600"
$destdir = "X:\Standards\Water Resources\GIS\_Water Resources GIS Database\_Unprocessed_Raw_data"
$folders = Get-ChildItem "Z:\Production500\000600" -Filter "Water Resources","GIS" -Recurse
$folders | % ($_) {cp $_.FullName -Destination "$destdir\$($_.Name + $_.LastWriteTime.toString("_yyyy_MM_dd_") + "$($path.split('\')[3])")" -recurse}您不需要$i变量,也不需要执行增量操作。
确保你正确地给出了路径,这样它就可以在每条路径上分裂。这只是一个硬编码路径的示例,因为您没有指定它是在目标路径还是源路径中。
希望能帮上忙。
https://stackoverflow.com/questions/45717027
复制相似问题