PowerShell脚本移动文件夹一个级别,并删除含有previous文件夹 [英] PowerShell Script to move folders one level up and delete the previous containing folder

查看:199
本文介绍了PowerShell脚本移动文件夹一个级别,并删除含有previous文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Windows Server 2008的计算机上,我的文件夹结构,像

I'm having a windows server 2008 machine on which i've a folder structure like

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)的文件夹中复制其内容。有点像这样


Now here what i need to do is remove the category folder and copy its content directly under the respective project(x) folder. Somewhat like this

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

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

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

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

这怎么可以用PowerShell脚本来完成。还什么是最好的PowerShell脚本或批处理文件。

How this can be done with powershell script. Also what would be the best a powershell script or a batch file.

推荐答案

修改:我为了也移动文件present类别的文件夹添加修改

EDIT: I added a modification in order to also move the files present in category folder.

@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 ..
)

这篇关于PowerShell脚本移动文件夹一个级别,并删除含有previous文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆