【问题标题】:PowerShell Script to move folders one level up and delete the previous containing folderPowerShell脚本将文件夹向上移动一级并删除先前包含的文件夹
【发布时间】:2013-04-11 10:56:55
【问题描述】:

我有一台 Windows Server 2008 机器,我的文件夹结构类似于

root_folder
 ...........username1
 ....................project1
 ............................category
 ....................................subproject1
 ....................................subproject2
 ....................................subproject3
 ....................project2
 ............................category
 ....................................subproject1
 ....................................subproject2
 ....................................subproject3

 ...........username2
 ....................project1
 ............................category
 ....................................subproject1
 ....................................subproject2
 ....................................subproject3

 ....................project2
 ............................category
 ....................................subproject1
 ....................................subproject2
 ....................................subproject3 

现在我需要做的是删除类别文件夹并将其内容直接复制到相应的项目(x)文件夹下。有点像这样

root_folder
     ...........username1
     ....................project1
     ....................................subproject1
     ....................................subproject2
     ....................................subproject3
     ....................project2
     ....................................subproject1
     ....................................subproject2
     ....................................subproject3

-----------------------------------------------------------
     ...........username2
     ....................project1
     ............................subproject1
     ............................subproject2
     ............................subproject3

     ....................project2
     ............................subproject1
     ............................subproject2
     ............................subproject3 

-----------------------------------------------------------

如何使用 powershell 脚本来完成。还有什么是最好的powershell脚本或批处理文件。

【问题讨论】:

  • 您是否尝试过自己编写此脚本?你能发布你有什么吗?
  • 不,我不懂脚本语言。

标签: powershell batch-file windows-server-2008


【解决方案1】:

我遇到了大致相同的问题。我写了这样的东西:

$category_list = Get-ChildItem *\*\*

Get-ChildItem *\*\*\* | % { Move-Item $_.FullName (($_.Parent).Parent).FullName }

$category_list | Remove-Item -Recurse

【讨论】:

    【解决方案2】:

    编辑:我添加了一个修改,以便同时移动类别文件夹中的文件。

    @echo off
    rem Enter into Root Folder
    cd \root_folder
    rem Process each User Name folder
    for /D %%u in (*) do (
       rem Enter into the user name folder
       cd "%%u"
       rem Process each Project
       for /D %%p in (*) do (
          rem Enter into the category of this project
          cd "%%p\category"
          rem Move all subprojects one level up
          for /D %%s in (*) do move "%%s" ..
          rem Move all files one level up
          move *.* ..
          rem Go back one level up to project folder
          cd ..
          rem Remove the now empty category folder
          rd category
          rem Go back one level up to user folder
          cd ..
       )
       rem Go back one level up to root  folder
       cd ..
    )
    

    【讨论】:

    • 感谢@Aacini,这太棒了!!!但它无法移动文件。如果项目中或类别文件夹(文件和子文件夹)中有任何文件,它不会将它们移动到上一级。我可能忘了在我的问题中提及它。你能帮我解决这个新的测试条件吗?
    • @rohitj:已添加修改! ;-)
    猜你喜欢
    • 2020-04-02
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多