脚本从父文件夹Win 7,批处理脚本中提取文件/文件夹

时间:2013-09-16 20:25:52

标签: batch-file

寻找帮助我的想法。

我有很多音乐,其中大部分是[艺术家文件夹] [专辑文件夹] [cd文件夹] [文件]的顺序,我希望能够快速将所有音乐文件带到[艺术家]级别。

我不期待奇迹,所以我想我是否可以将它设置为一个右键命令,就像WinRar在Extract Here中所做的那样,应该将该文件夹中的所有内容提升到一个级别?

所以我需要能够

  1. 调用我的批处理,并将其传递给目标文件夹。
  2. 让批次选择所有文件/文件夹并移至                         与目标文件夹相同的级别。 即使我需要多次为一位艺术家点击一次,也要尽量保持简单!
  3. 提前感谢任何帮助,指示或进一步阅读!

1 个答案:

答案 0 :(得分:0)

这是一个将根目录下的所有文件移动到根目录的脚本。 “Moveit.bat C:\ my \ music” 将找到该目录下的所有内容并将其移动到C:\ my \ music。

第27行被注释掉了......所以脚本只会告诉你它会做什么。 取消注释第27行以使其实际工作。

    @echo off
@rem USAGE: MoveIt root

setlocal

    pushd "%~1"
    set root=%CD%

    if "%1"=="" goto :Usage

    for /f "delims=;" %%a in ('dir /a-d /b /s ') do call :MoveIt "%%a"

    goto :EOF

:MoveIt
    rem Exclude files directly under "from"
    set target=%~d1%~p1
    if "%target:~2%"==":\" (
        if "%target%"=="%root%" (
            goto :EOF
        )
    ) else if "%target:~0,-1%"=="%root%" (
        goto :EOF
    )

    echo move "%~1" "%root%"
    rem move "%~1" "%root%" > nul || echo Failed to move "%~1" to "%root%" & goto :EOF
    goto :EOF

:Usage
    echo Usage: moveit.bat  RootDirectory
    goto :EOF