【问题标题】:Batch move folders from a subdirectory to another subdirectory that contains the same number将文件夹从一个子目录批量移动到另一个包含相同编号的子目录
【发布时间】:2021-06-24 07:57:14
【问题描述】:

我有一个folder structure 并想“合并”这些文件夹。 我的意思是:如果 b\ *\ 中存在一个文件夹,并且包含 p\ *\ 中的文件夹编号,则将文件夹从 b 移动到 p。

例如将b\p 11 - 20\11_abc 移动到p\p_11_20\11

我目前有:

@Echo off

SETLOCAL ENABLEDELAYEDEXPANSION

cd /d "%~dp0"

for /f %%a IN ('dir /b "%~dp0\p\"') do (
    set "tmp=Y"
    for /f %%b IN ('dir /b "%~dp0\p\%%a\"') do if defined tmp (
        echo %%b
    )
    set "tmp="
)

它为我提供了数字(例如 11、12、13、21、22、23) 现在我需要一种方法来找出 b\ *\ ... 中是否存在具有该前导数字的文件夹。如果是,则需要将其移动到相应的 p\ *\ ... 文件夹

【问题讨论】:

  • 你应该从cmdrobocopy /?
  • @Gerhard 感谢您的推荐。今天在工作时,我接近优化这个程序。我使用 2 个嵌套的 for 循环将 \b\ 文件夹的所有路径写到 .txt 文件中。然后我遍历所有 \p\ 文件并搜索匹配的数字是否在 .txt 中。这要快得多,但我被困在移动部分。我早上在额外的试驾中测试了这个程序,它工作正常。当我下午运行该程序时,它在移动部分(尝试了 xcopy、move、robocopy)不起作用,因为我考虑到安全原因。明天我会进一步研究。

标签: batch-file directory


【解决方案1】:

我找到了解决方案。它不是很漂亮,也不是很快,但它完成了工作。

我基本上做的是遍历 \p 中的每个文件夹。使用每个文件夹的数量,我遍历 \b 中的每个文件夹。对于我在 \b\ 中找到的每个文件夹,我检查它是否以当前 \p\ 文件夹的编号开头;如果是,请移动文件夹。

@Echo off

SETLOCAL ENABLEDELAYEDEXPANSION

cd /d "%~dp0"

for /f "delims=" %%a IN ('dir /b "%~dp0p\"') do (
    set "tmp1=Y"
    for /f "delims=" %%b IN ('dir /b "%~dp0p\%%a\"') do if defined tmp1 (
        set "tmp2=Y"
        for /f "delims=" %%c IN ('dir /b "%~dp0b\"') do if defined tmp2 (
            set "tmp3=Y"
            for /f "delims=" %%d IN ('dir /b "%~dp0b\%%c\"') do if defined tmp3 (
                set "tmpstr=%%d"
                set "tmpstr=!tmpstr:~0,2!"
                if "!tmpstr!"=="%%b" (
                    echo moving folder %%d to %%b ...>>log.txt
                    echo moving folder %%d to %%b ...
                    move "%~dp0b\%%c\%%d" "%~dp0p\%%a\%%b"
                )
                
            )
            set "tmp3="
        )
        set "tmp2="
    )
    set "tmp1="
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-09
    • 2013-07-02
    • 2016-04-04
    • 1970-01-01
    • 2020-04-11
    • 2011-07-07
    • 2017-07-20
    • 1970-01-01
    相关资源
    最近更新 更多