使用PowerShell将多个子文件夹复制到一个文件夹

时间:2017-05-02 09:04:10

标签: powershell

我是PowerShell的新手,我的问题很小。

我在C上有两个文件夹:/ - C:/folder1C:/folder2

folder1 包含10个子文件夹,我只想将其中的3个复制到 folder2

我应该使用远程计算机,所以我也应该使用Invoke-Command

不幸的是,该程序不能与我的代码一起使用。

$SubFolders = "C:/subfolder1", "C:/subfolder2", "C:/subfolder3"
$copy = InvokeCommand -ComputerName $compname | For-EachObject { Write-Host = "$SubFolders" }
$paste = "C:/folder2"
Copy-Item $copy $paste -Recurse -Force

2 个答案:

答案 0 :(得分:0)

将多个子文件夹中的文件移动或复制到单个文件夹。

打开命令提示符窗口。使用以下命令行示例。

cd /d "d:\snaps\2016" for /r %d in (*) do copy "%d" "d:\My pictures" 这会递归地将“snaps \ 2016”文件夹中的所有文件复制到“我的图片”文件夹。

或试试这个:

<$>`$ Path ='S:\ powerrocket \ 0test'#Root查找文件的路径 $ DestinationPath =“C:\ powerrocket \ 0test \”

获取所有子文件夹的递归列表

$ SubFolders = dir $ Path -Recurse | Where-Object {$ .PSIsContainer} | ForEach-Object -Process {$ .FullName}

遍历子文件夹列表并获取每个

中的第一个文件

ForEach($ SubFolders中的$ Folder){ $ FullFileName = dir $ Folder | Where-Object {!$ .PSIsContainer} | Sort-Object {$ .LastWriteTime} -Scending | Select-Object -First 1 Copy-Item -Path $ FullFileName -Destination $ DestinationPath -Force }`

答案 1 :(得分:0)

试试这个:

Invoke-Command -ComputerName $compname -ScriptBlock {param($folders,$paste) Copy-Item -Path $folders -Destination $paste} -ArgumentList $folders, $paste

不是最优雅的解决方案,但它确实有效。