2013-03-08 31 views

回答

1

我最近有类似的要求,我写了一个脚本来做到这一点。它不仅限于同名文件或一级深层目录结构,但您可以使用它,我认为它应该符合您的需求。它采用完整的文件名,去除当前路径前缀并将任何反斜杠转换为下划线,从而将目录结构“压扁”成文件名。你只需要指定一个目标目录和一个文件掩码来操作脚本(第二行和第三行)。

@ECHO OFF 
SET filemask=*.gif 
SET target_path=out 
SETLOCAL EnableDelayedExpansion 
SET current_path=%CD%\ 
IF NOT EXIST "%target_path%" MKDIR "%target_path%" 
FOR /F "tokens=*" %%G IN ('DIR /B /S %filemask%') DO (
    SET file=%%G 
    :: strip current path 
    SET file_new=!file:%current_path%=! 
    :: convert backslashes to underscores 
    SET file_new=!file_new:\=_! 
    :: copy file 
    COPY %%G %target_path%\!file_new! >nul 
) 
ENDLOCAL 
相关问题