タイトルの記載内容を行う良い方法を見つけられないようです。さまざまなサブディレクトリにあるすべてのファイルを、サブディレクトリ名が一致する別のディレクトリに移動する必要があります。私が取り組んできたコードは次のとおりです。複数のサブディレクトリにあるファイルを、サブディレクトリ名が一致する別のディレクトリにコピーします。
@echo off
IF EXIST path.txt del /f path.txt
:: Above line for test only
for /f %%i in ('DIR /a:d /b "C:\ProgramData\Test\WTM\Source"') do (
echo %%i >>path.txt
)
::Pull sub-directory name from working folder
for /f "delims=" %%a in ('DIR /s /a-d /b "C:\ProgramData\Test\WTM\Source"') do (
for /F %%b in (path.txt) do (
move /y "%%a" "C:\ProgramData\Test\WTM\Destination\%%b\*.*"
)
)
PAUSE
私は(いくつかの時間までの時間から先から欠落することができるように)サブディレクトリ名を引っ張っているやろうとしています、のすべてを見つけますファイルをソースディレクトリ内に移動し、以前に引っ張ったサブディレクトリ名を使用して、それぞれのサブディレクトリ名の下の宛先ディレクトリにファイルを移動します。だから、
C:\ProgramData\Test\WTM\Source\123\123.txt,
C:\ProgramData\Test\WTM\Source\456\9681.txt,
C:\ProgramData\Test\WTM\Source\789\1941.txt,
etc...
を引っ張り、
C:\ProgramData\Test\WTM\Destination\123\123.txt,
C:\ProgramData\Test\WTM\Destination\456\9681.txt,
C:\ProgramData\Test\WTM\Destination\789\1941.txt,
etc...
にそれらのファイルを移動する私のコードが正しく実行されることはありませんし、エラーは、私が変更内容によって異なりますが、通常、私は%%b
がサブとして渡すことが取得することはできませんディレクトリ名ではなく、%b
であるか、またはパラメータを使用して動作させることができます(set %%i = path
を設定して%path%
に%%b
を置き換えます)。しかし、ファイルを最後のサブディレクトリにコピーします。そこにはset
コマンドがあります。
私はいくつかのポインタが必要です、私はそれが私が欲しいものをすることができないようです。すべてのポインタが評価されています!ありがとう、トン!
'Source'(と' Destination')には1つのレベルのサブディレクトリしかありませんか? – aschipfl
移動部分の重要性がわかりません(コピーもOKです)。とにかく、xcopyコマンドとrobocopyコマンドを調べてみてください。最悪の場合は、出力をテキストファイルにリダイレクトしてからファイルを削除することができます。 –