0

そのため、変換されたすべてのフォルダーの下にあるファイルを、メインのSourceフォルダーから同じ階層を持つ別のOutputフォルダーに移動したいと思います。

Source
   -done
   -converted
   -folder1
      -done
      -converted
      -folder11
         -done
         -converted
   -folder2
      -done
      -converted

Output
   (files from converted folder)
   -folder1
      (files from converted folder)
      -folder11
         (files from converted folder)
   -folder2
      (files from converted folder)

私はバッチスクリプトを初めて使用するので、何らかの方法で私を助けていただければ幸いです。ありがとう!!

4

1 に答える 1

0
@ECHO OFF
SETLOCAL
SET source=c:\sourcedir
SET destroot=c:\destdir
SET cdtl=0
:loploop
SET /a cdtl+=1
FOR /f "tokens=%cdtl%*delims=\" %%i IN ("%source%") DO IF NOT "%%j"=="" GOTO loploop
FOR /f "delims=" %%i IN (
    ' dir /b/s/ad "%source%\converted" '
    ) DO CALL :movedest "%%~dpni%"
)
GOTO :eof

:movedest
SET destdir=%~1
FOR /f "tokens=%cdtl%*delims=\" %%d IN (%1) DO SET destdir=%destroot%\%%e
ECHO MD "%destdir%" 2>NUL
ECHO MOVE /y "%~1\*.*" "%destdir%\"
GOTO :eof

最後から 2 行のECHOs は、提案されている操作を単に表示します。それが目的であることを確認したら、ECHOキーワードを削除して移動を実行します。

/yコマンドのスイッチはMOVE、ファイルの既存の宛先バージョンを上書きすることに注意してください。

于 2013-03-18T08:37:29.797 に答える