powershell复制文件夹中的所有文件夹和文件
可能很容易为你们。powershell复制文件夹中的所有文件夹和文件
我想所有的文件夹和文件复制从这个路径C:\ DEFAULT \ 此目标C:\环境\ customfolder \ 在文件夹customerfolder是具有不同名称的其他文件夹。 它应该只将文件和文件夹复制到目标位置自定义文件夹包含名称DEMO_test
要做到这一点的最佳和最简单的方法是什么?我应该使用for-each吗?
感谢您的帮助。
对不起,我应该更清楚。 ;-)
我有一个文件夹C:\默认
的所有文件和子文件夹在该文件夹C:\默认
应该被复制到这些文件夹
C:\环境\ customfolder \ demo_test
C:\环境\ customfolder \ demo_test01
C:\环境\ customfolder \ demo_test02
C:\环境\ customfolder \ demo_test03
我知道它应该是可能的所有文件和子文件夹从这个路径(源)复制C:\ DEFAULT \
这个路径(目标)C:\环境\ customfolder \
而且,只有将它复制到文件夹,如果他们有名称(如)demo_test *
是这个问题比较好?
谢谢。
获取文件的列表:
Get-ChildItem -Path "C:\default\" -Recurse
的-Recurse
参数搜索子文件夹。
现在筛选列表仅显示符合特定模式
Get-ChildItem -Path "C:\default\" -Recurse |
Where-Object Name -like "*test*"
注意管道|
有效地链接在一起使用这些指令文件。
现在项目的筛选列表复制到目标文件夹:
Get-ChildItem -Path "C:\default\" -Recurse |
Where-Object Name -like "*test*" |
Copy-Item -Destination "C:\destination\"
如果我理解你corectly你有目录的扁平结构: 来源: Ç\目录[lookupCatalogs] \文件 DEST: C:\目录\ SomeCatlogs [lookupCatalogs] \文件
如果是,
这个功能应该是确定:
function copy-TestdemoFolders
{
param ($source,
$destination,
$filter,
$recursive = $false)
$folders = Get-ChildItem $source -filter $filter -Directory
$folders | % {
$copyPath = Join-Path $destination $_.name
if (!(Test-Path $copyPath))
{
New-Item $copyPath -ItemType Directory | Out-Null
"Created New Folder: $($_.name)"
}
$scriptBlock = { Get-ChildItem $_.Fullname }
if ($recursive -eq $true)
{
$scriptBlock = { Get-ChildItem $_.Fullname -Recurse }
}
Invoke-Command -ScriptBlock $scriptBlock | %{
Copy-Item $_.Fullname $copyPath -ErrorAction SilentlyContinue
if (!($?)) { $error[0].Exception.Message }
}
}
}
copy-TestdemoFolders -source 'C:\Source' -filter "*demo_test*" -destination D:\TEST
您可以递归从子文件夹中的文件复制到[lookupCatalog]与开关copy-TestdemoFolders -source 'C:\Source' -filter "*demo_test*" -destination D:\TEST -recursive:$true
对不起,我应该更清楚。 ;-) 我有一个文件夹C:\默认 – michieln
对不起,我应该更清楚。 ;-) 我有一个文件夹C:\默认 的所有文件和子文件夹在该文件夹C:\默认 应该被复制到这些文件夹C:\环境\ customfolder \ demo_test C:\环境\ customfolder \ demo_test01 c:\ environment \ customfolder \ demo_test02 c:\ environment \ customfolder \ demo_test03 我知道应该可以将此路径(源)c:\ default \ 中的所有文件和子文件夹复制到此目录路径(目标)C:\环境\ customfolder \ 而只有将其复制到文件夹,如果他们有名称(如)demo_test * 是这个问题比较好? 谢谢。 – michieln
你的要求是有点不清楚......也许你可以提供一些示例的源和目标文件路径? – gvee