将子文件夹批量传输到父文件夹中

时间:2018-01-04 20:05:21

标签: powershell cmd batch-processing directory subdirectory

我有一个问题,我似乎找不到任何在线解决方案。我试图重构我从旧数据库服务导出一些数据后最终得到的一些数据结构。

导出给我留下了一堆客户端文件夹,格式为[Client Name] - >档案 - >档案 - > [客户端文件/子文件夹]。我想最终得到的是[客户名称] - > [客户端文件/子文件夹],删除两个冗余的"存档"中间的文件夹。

很多人向我建议我只是将文件从子文件夹剪切并粘贴到客户端根目录,但是对于数百个客户端文件夹,这将是一项非常漫长的任务。是否有任何批量cmd命令或powershell命令我可以用来处理这些文件夹并重组它们?任何建议都非常感谢。

1 个答案:

答案 0 :(得分:1)

正是出于这些目的,有三个内置的PoSH cmdlet。

Get-ChildItem(又名gci,dir和ls)

(Get-Command -Name Get-ChildItem).Parameters.Keys
Get-Help -Name Get-ChildItem -Full
Get-Help -Name Get-ChildItem -Examples

Move-Item(又名mi,move和mv)

(Get-Command -Name Move-Item).Parameters.Keys
Get-Help -Name Move-Item -Full
Get-Help -Name Move-Item -Examples

删除项目(又名del,erase,rd,ri,rm,rmdir)

(Get-Command -Name Remove-Item).Parameters.Keys
Get-Help -Name Remove-Item -Full
Get-Help -Name Remove-Item -Examples

详情请见: Windows PowerShell中的文件和文件夹

我们首先要告诉您,上个月学到的有关使用WMI操作文件和文件夹的所有内容都可以在Windows PowerShell中使用。 PowerShell有一个名为Get-WMIObject的cmdlet,允许您访问WMI的所有类,方法和属性。与VBScript一样,WMI是在Windows PowerShell中远程处理文件和文件夹的唯一方法。在本文中,我们不打算在Windows PowerShell中使用WMI,但我们将向您展示使用PowerShell处理文件和文件夹的方法。 https://technet.microsoft.com/en-us/library/ee176988.aspx

至于...... "删除两个冗余的"存档"介于两者之间的文件夹。"

如果这些文件夹中没有任何内容,那么上面的删除项应该就是您所需要的。否则,您将所有文件从那里移到任何地方,然后删除文件夹。

或者只使用robocopy

https://technet.microsoft.com/en-us/library/cc733145(v=ws.11).aspx https://social.technet.microsoft.com/wiki/contents/articles/1073.robocopy-and-a-few-examples.aspx

Robocopy(强大的文件复制)是Windows Vista / Windows 2008或更高版本附带的命令行文件复制实用程序。在Vista之前,Robocopy是Windows Resource Kit Tools的一部分,可免费下载(http://aka.ms/robocopydownload Jump)。与普通复制命令不同,Robocopy设计用于可靠的复制或镜像,同时保持复制的对象的权限,属性,所有者信息,时间戳和属性。