首页 > 解决方案 > 将“此文件夹”复制到网络驱动器(Robocopy 或 PowerShell)

问题描述

在本地驱动器上有这样的文件夹结构,在网络驱动器上有类似的结构

C:\Documents\Projects\ 
\\myServer\Storage\Projects\

对于每个新项目,我都会在本地创建文件夹,例如

 \Projects\abc\Subfolder1
 \Projects\abc\Subfolder2

我需要 PowerShell 或批处理文件。批处理存储在文件夹 abc 中,它将执行

Robocopy C:\Documents\Projects\abc \\myServer\Storage\Projects\abc 

(当然有些开关是合理的)

下一个项目,例如 xyz

\Projects\abc\Subfolder1
\Projects\abc\Subfolder2

我预计

 Robocopy C:\Documents\Projects\xyz \\myServer\Storage\Projects\xyz 

每次创建新项目时,我都会复制应该包含批处理的示例文件夹结构,以便我可以快速将项目复制到网络,

我认为这可以通过使用本地和服务器基本路径的变量或通过执行 som 来解决

标签: powershellrobocopy

解决方案


我不知道您需要哪些 Robocopy 参数,但这可能是一个开始。这假定您将此脚本放在每个 \Projects\abc 目录中并从那里运行它。

$DestinationShare = '\\myServer\Storage'
$SourcePath = $PSScriptRoot
$DestinationPath = $PSScriptRoot -replace ".*?(?<path>\\Projects\\.*)","$DestinationShare`${path}"
robocopy $SourcePath $DestinationPath

这可以变成一个静态编码更少的函数。

在需要时仅对整个 Projects 目录进行 robocopy 会更简单。


推荐阅读