我希望能夠編寫一個PowerShell腳本來獲取一個文件夾(或一組文件夾)並複製文件夾結構(沒有文件)可以被創建,其中可以創建文件結構(不包括文件夾),或者可以創建文件夾(全部或選定的文件夾)和文件夾(和)。複製沒有文件的文件夾,沒有文件夾的文件或使用PowerShell的所有文件
Example:
C:\ProdData has 3 subfolders in it
C:\ProdData\Fld1
C:\ProdData\Fld2
C:\ProdData\Fld3 - has 2 subfolders under it
C:\ProdData\Fld3\MyFolder1
C:\ProdData\Fld3\MyFolder2
上面的每個文件夾都有各種文件擴展名的各種大小的文件。
我想有一個PowerShell腳本,將在其他地方複製該文件夾結構,給我文件夾結構只有,文件只有,或文件和文件夾要複製的選擇。
在上文中,我想能夠複製C:\ ProdData到另一個文件夾,基本上重命名ProdData到TESTDATA(即,C:\ ProdData複製到C:\ TESTDATA),或者複製整個文件夾結構。
C:\ProdData
到另一個文件夾那就是別的一個子文件夾:C:\TestArea\TestFolders\2012-04-01\TestData\ProdData\Fld1
,等...
並選擇性地選擇包括文件夾,文件或兩者。
理想的解決方案是(僅適用於文件夾)採取文件夾結構,導出/保存,讀入,並在其他地方創建相同的結構。我發現一些解決方案說他們只複製文件夾結構,但是如果數據存在,它也會被複制,並且您不能排除其中一個。我有一個部分解決了僅文件的要求,即半保留路徑,但它會採取一個文件:
c:\ProdData\Fld1\MyFile.dat
並將其複製到:
c:\TestData\yyyyMMdd_hhmmss_ProdData_Fld1_MyFile.dat
但是,這不是一件能容易被解碼並且不可能重新整合源結構。我很感激有關如何在不重新發明車輪的情況下實現這一目標的任何想法。
感謝您的建議。我甚至沒有安裝Robocopy,它非常適合需求。 我最終爲一個文件的結構做了什麼,就是將Show-Tree管到文本文件中。那完成了我之後的另一件事。沒有一件事會做到這一切,但3個相對簡單的作品合在一起就完成了我所需要的。 謝謝你的幫助! – 2012-04-04 13:13:16
對於扁平化,您可以跳過中間部分,並使用Get-ChildItem上的-File選項(和Copy-Item而不是robocopy):Get-ChildItem $ source -Recurse -File | Foreach-Object {Copy-Item $ _。FullName $ dest}。雖然沒有太大的區別。 – Brandon 2013-06-12 20:55:13
@Brandon好點。只要你使用Powershell 3,你當然可以這麼做(直到v3之前'-File'和'-Directory'參數才存在)。 – ajk 2013-06-13 03:05:07