2014-09-22 99 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 
} 
相關問題