将“此文件夹”复制到网络驱动器(Robocopy或PowerShell)

时间:2019-07-04 12:26:11

标签: powershell robocopy

在本地驱动器上具有这样的文件夹结构 以及类似

的网络驱动器上的结构
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来解决

2 个答案:

答案 0 :(得分:1)

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

length 5
BATCH CABLE

length 4
PAID CAKE

length 2
MY

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

仅在需要时自动复制整个Projects目录将变得更加简单。

答案 1 :(得分:0)

您可以批量执行以下操作:

@echo off

set "src=%~dp0"
set "dst=\\myServer\Storage"

for /d %%d in (%src%.) do set "name=%%~nd"

robocopy %src% %dst%\%name%\ /mir

%~dp0是脚本所在的目录。然后for循环从完整路径中提取该目录的名称。