2014-09-22 217 views
0

我已经GOOGLE了,并继续找到解决方案,但无法正确调整它们,寻求帮助我的PowerShell解决方案批量复制一个名为TEST0000的子文件夹,并将输入的数量复制到另一个名为Prod的文件夹带有增量文件夹名称,例如。因此将c:\ test \ dba \ test0000(100个副本)复制到c:\ test \ prodPowershell脚本批量复制文件夹,并增量重命名复制的文件夹

说我想将100个文件夹副本复制到另一个名为c:\ test \ prod的文件夹,以便目标测试中的文件夹名称\ prod文件夹将test0001,test0002,test0003等一路100.

这是我拼凑到目前为止,但没有取得任何成功,它复制文件夹,但它用数字而不是增量文件夹名称命名。所以我没有在目标文件夹中选择正确的文件夹名称,只是将数字显示为目标目录中的文件夹名称!请帮帮我!提前致谢。

$NumberOfFolders = Read-Host "Enter the number of Folders You need:" 
$Source = "C:\Test\DBA\TEST0000" 
$WhereToWrite = "C:\Test\Prod\" 
for($i=1;$i -le $NumberOfFolders;$i++){ 
$dest = "$WhereToWrite$i" 
Copy-Item $Source $dest -Recurse -Container 
} 

回答

0

这是因为Copy-Item无法猜测您想保留文件夹名称。所有它知道的是,你告诉它将文件夹C:\Test\DBA\TEST0000的内容复制到文件夹C:\Test\Prod\1C:\Test\Prod\ + $i)。事实如此。

您必须手动将TEST0000添加到目标路径。为此,请在$Source路径上使用Split-Path cmdlet和Leaf参数,它将为您指定路径的最后一个元素的名称(TEST0000)。然后,将其添加到目标路径并添加$i变量:

$NumberOfFolders = Read-Host "Enter the number of Folders You need:" 
$Source = "C:\Test\DBA\TEST0000" 
$WhereToWrite = "C:\Test\Prod\" 

for($i=1 ; $i -le $NumberOfFolders ; $i++){ 
    $dest = Join-Path -Path $WhereToWrite -ChildPath ((Split-Path $Source -Leaf) + $i) 
    Copy-Item $Source $dest -Recurse -Container 
} 
相关问题