【问题标题】:Combine Folders based on Folder Name Batch根据文件夹名称批量合并文件夹
【发布时间】:2020-12-06 22:47:38
【问题描述】:

我有具有以下命名约定的子文件夹:

000026867_20200722_222406_SS24

我想合并名称最后部分相同的所有文件夹的内容。在这种情况下,所有以SS24 结尾的文件夹。它总是在第三个下划线之后,但也有可能在最后一个下划线之后超过 4 个字符。

我希望所有以SS24 结尾的文件夹中的所有文件都位于一个名为All_SS24 的新文件夹中

原来的文件夹可以删除。

@Echo off
pushd "C:\path\to\your\base\folder" 
for /f "Tokens=1* Delims=-" %%A in ( 'Dir /B /AD -' ) Do If Not Exist "%%A" ( 
    Ren "%%A-%%B" "%%A"
) Else ( 
    Move /Y "%%A-%%B*" "%%A\" RmDir "%%A-%%B" 
)
PopD

感谢您的帮助。

【问题讨论】:

    标签: batch-file directory


    【解决方案1】:

    这或多或少是你想要的:

    @echo off
    pushd "C:\path\to\your\base\folder" 
    for /f "tokens=1-4*delims=_" %%a in ('dir /b /ad "*_*"') do (
        mkdir "%%d">nul 2>&1
        copy "%%a_%%b_%%c_%%d\*" "%%d" /Y
        rd "%%a_%%b_%%c_%%d" /S /Q
    )
    popd
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 2021-11-06
      • 2018-12-23
      相关资源
      最近更新 更多