2013-04-11 157 views
1

我有一个Windows Server 2008的计算机上我的文件夹结构类似PowerShell脚本来移动文件夹一个级别,并删除

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脚本或批处理文件。

+0

您是否试图自己写这个脚本?你可以发布你有什么? – mjolinor 2013-04-11 11:29:22

+0

不,我没有脚本语言的知识。 – rkj 2013-04-11 11:31:18

回答

1

编辑:我为了还存在移动在类别文件夹中的文件添加修改。

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

Thanks @Aacini,That works awsome !!!但它无法移动文件。 如果在项目或分类文件夹(文件和子文件夹)中有任何文件,它不会将它们移到水平位置。我可能忘了在我的问题中提到它。你能帮我解决这个新的测试条件吗? – rkj 2013-04-12 10:06:25

+0

@rohitj:已添加修改! ;-) – Aacini 2013-04-13 02:11:48

+0

百万感谢@Aacini !!! – rkj 2013-04-13 06:19:14

0

我有大致相同的问题。我写的是这样的:

$category_list = Get-ChildItem *\*\* 

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

$category_list | Remove-Item -Recurse 
相关问题