首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制项并将其重命名到Powershell中的特定父目录。

复制项并将其重命名到Powershell中的特定父目录。
EN

Stack Overflow用户
提问于 2017-08-16 14:59:49
回答 1查看 731关注 0票数 1

我有一个脚本,它将复制我过滤并复制到一个新目录中的目录列表,这个目录的名称加上LastWriteTime

代码语言:javascript
复制
$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++}

该脚本可以很好地将我需要的准确文件夹和文件复制为以下格式:

代码语言:javascript
复制
.\GIS_2017_07_09_1
.\GIS_2017_07_10_2
.\GIS_2017_07_10_3

与计数器不同,我更希望在父目录的末尾有一个名称。例如,如果$folders是以下列表:

代码语言:javascript
复制
 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

我希望将复制的项目重命名为:

代码语言:javascript
复制
.\GIS_2017_07_09_B000676
.\GIS_2017_07_10_B000667
.\GIS_2017_07_10_B000663

这样就消除了对计数器的需求,也使目的地更加有组织。值得注意的是,B000###始终是第三个文件夹的深度。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-16 15:16:13

让我们假设您的路径是在变量中提到的,您可以继续这样做,因为您已经提到它将始终是第三级文件夹:

您可以使用溢出文件获取文件夹名,并将其放入foreach中。

代码语言:javascript
复制
$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变量,也不需要执行增量操作。

确保你正确地给出了路径,这样它就可以在每条路径上分裂。这只是一个硬编码路径的示例,因为您没有指定它是在目标路径还是源路径中。

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45717027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档