根据文件的扩展名长度复制文件?

时间:2017-03-09 09:25:20

标签: cmd copy wildcard

我正在Windows上寻找一种方法来查找具有特定文件扩展名长度的所有文件,并将其复制到另一个位置,同时保留文件夹结构。

例如,假设我要复制D:驱动器上的所有文件,文件扩展名长度为6(*。******),并将它们复制到另一个位置,同时保留文件夹结构

这在CMD中是否可行?。

2 个答案:

答案 0 :(得分:0)

C:\ Users \ PeterR> copy C:\ Users \ PeterR \ Documents \ cmd \ ???。txt C:\ Users \ PeterR \ Documents \ cmd1 \

- 用吗?指定lentgh。对于六个字符,它是扩展

答案 1 :(得分:0)

以下代码段如何:

@echo off
setlocal EnableExtensions DisableDelayedExpansion

rem // Define constants here:
set "_SOURCE=D:\"
set "_DESTIN=E:\"

pushd "%_SOURCE%" || exit /B 1
for /F "delims=" %%F in ('
    xcopy /L /E /I ".\*.*" "E:\" ^| find ".\"
') do (
for /R "D:\" %%F in ("*.*") do (
    set "EXT=%%~xF"
    setlocal EnableDelayedExpansion
    if "!EXT:~6!"=="" if not "!EXT!"=="!EXT:~5!" (
        endlocal
        move /Y "%%~F" "%_DESTIN%\%%~F"
    ) else endlocal
)
popd

endlocal
exit /B