bat脚本命令批量修改文件夹里子文件夹的文件位置

求bat脚本命令 批量修改文件夹里子文件夹的文件位置。

img

我有一个文件夹,里面有很多个子文件夹。

img

子文件夹中有些图片,psd文件和一个装有jpg格式文件的 名称为JPEG的文件夹。

我想让名称为JPEG文件夹 里的jpg格式图片文件 放到外面来,把外面的图片和psd格式的文件放到JPEG文件夹里面去。(意思就是交换位置。)
并把JPEG文件夹重命名为“original_photo”。

把下面批处理保存到文件run.bat,把这个文件拷贝到最上层父目录里,然后双击运行即可,它会递归遍历所有子目录按照你的要求移动文件

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

@REM Move *.psd to original_photo\*.psd
FOR /R "%~dp0" %%I IN (*.psd) DO (
    FOR %%J IN ("%%~dpI.") DO SET "folder=%%~nxJ"
    IF NOT "!folder!" == "original_photo" (
        IF NOT EXIST "%%~dpIoriginal_photo" MKDIR "%%~dpIoriginal_photo" 
        ECHO Moving "%%I" to "%%~dpIoriginal_photo\%%~nxI" ...
        MOVE "%%I" "%%~dpIoriginal_photo\%%~nxI" >NUL
    )
)

@REM Move JPEG\*.jpg to *.jpg
FOR /R "%~dp0" %%I IN (*.jpg) DO (
    FOR %%J IN ("%%~dpI.") DO SET "folder1=%%~nxJ"
    FOR %%J IN ("%%~dpI.") DO SET "folder2=%%~dpJ"
    IF "!folder1!" == "JPEG" (
        ECHO Moving "%%I" to "!folder2!%%~nxI" ...
        MOVE "%%I" "!folder2!%%~nxI" >NUL
    )
    DIR /B /S /A "%%~dpI" | FINDSTR .>NUL || RMDIR "%%~dpI"
)

ENDLOCAL

简单点,别想太复杂,用搜索就可以批量完成,先搜索jpg后缀文件,然后全选剪切、粘贴,然后其他类型文件依葫芦画瓢
一次性的工作不用编写bat