如何解决根据文件夹名称批处理合并文件夹
我的子文件夹具有以下命名约定:
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
感谢您的帮助。
解决方法
这或多或少是您想要的:
@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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。