如何创建仅移动子目录的批处理文件,而不是主目录

时间:2012-12-01 06:19:02

标签: command-line batch-file

如何移动主文件夹中的所有子文件夹,而不是主文件夹本身。

源路径为c:\ book \ music \

我不想移动主文件夹本身,因为我收到了I / O设备错误。

我可以使用哪些代码来执行此操作?请注意拼写代码,因为我是命令行的宝贝:)

2 个答案:

答案 0 :(得分:2)

这是一个很长的剧本,但它应该可以很好地工作。 它使用“dir”,但你也可以查看“forfiles”。 Forfiles更灵活,但实际上很难使用。

@echo off
@rem USAGE: MoveDirs From To

setlocal

    set from="%~1"
    set to="%~2"

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


    for /f "delims=;" %%a in ('dir "%1" /ad /b ') do call :MoveIt "%1" "%2" "%%a"

    goto :EOF

:MoveIt
    move "%~1\%~3" "%~2" > nul || echo Failed to move %3 to %2 & goto :EOF
    echo Moved %3 to %2
    goto :EOF

:Usage
    echo Usage: moveDirs.bat  FromDirectory ToDirectory
    goto :EOF

答案 1 :(得分:1)

您可能还想阅读XCOPY。 你可以复制那些非空子目录的文件。

检查命令以了解有关它的更多信息。

xcopy /?