方法一,直接获取所有非目录文件进行移动:
# 要遍历的目录
$RootFolder = "C:\Users\xxx\Downloads\MoveItemTest"
# 要移动到的目录
$targetFolder = "C:\Users\xxx\Downloads\MoveItemTarget"
# 获取所有文件-排除文件夹
$itemFiles = Get-ChildItem -Path $RootFolder -Force -Recurse -Attributes !Directory
# 移动文件
Foreach($itemFile in $itemFiles)
{
Write-Output $itemFile
Move-Item -Path $itemFile.FullName -Destination "$targetFolder\"
}方法二,先移动目录下的文件,再获取所有子目录,遍历子目录移动文件
# 要遍历的目录
$RootFolder = "C:\Users\xxx\Downloads\MoveItemTest"
# 要移动到的目录
$targetFolder = "C:\Users\xxx\Downloads\MoveItemTarget"
$itemFiles = Get-ChildItem -Path $RootFolder -file -Force
Foreach($itemFile in $itemFiles)
{
Write-Output $itemFile
Move-Item -Path $itemFile.FullName -Destination "$targetFolder\"
}
# 获取所有子目录
$subFolders = Get-ChildItem -Path $RootFolder -Force -Recurse -Directory
# 遍历目录,移动文件
Foreach($subFolder in $subFolders)
{
$itemFiles = Get-ChildItem -Path $subFolder.FullName -file -Force
Foreach($itemFile in $itemFiles)
{
Write-Output $itemFile
Move-Item -Path $itemFile.FullName -Destination "$targetFolder\"
}
}推荐使用方法一
评论区