フォルダc:\folder1
にはsubfolder1
、subfolder2
などが含まれます。
これらのサブディレクトリは.pdf
および.db
ファイルを保持します。
Windowsコマンドインタープリターを使用して、すべての.pdf
ファイルをc:\folder1
に移動するにはどうすればよいですか?
これは私のために働きました:
for /r "c:\source_directory\" %%x in (*.pdf) do move "%%x" "c:\target_directory\"
このコマンドは、Windows 7でcmdを使用してソースからターゲットディレクトリに再帰的にすべてのPDFファイルをコピーします-テスト済みで動作します。
それが役に立てば幸い。
外側のforループは作業ディレクトリ内のサブディレクトリを一覧表示し、内側のforループは宛先パスに移動するサブディレクトリを一覧表示します。
for /d %f in (*.*) do for /d %e in (%f\*.*) do move "%e" DestinationPath
これは、DestinationPath
がそれ自体に移動しようとするため、DestinationPath
が作業ディレクトリのサブフォルダーでない場合に最適に機能します。
大量に実行する前にコマンドを確認するには、次のように最後のmoveコマンドをエコーすることから始めます。
for /d %f in (*.*) do for /d %e in (%f\*.*) do echo move "%e" DestinationPath
結果の1つをコピー/貼り付けして実行し、期待どおりに機能したことを確認します。次に、エコーを取り除き、動き始めます。
サブフォルダーで機能するワイルドカードはないと思うので、ループを使用して各サブフォルダーを通過し、*。pdfを移動します。
FOR /R [your root folder path] %%G IN (*.pdf) DO move %%G [new path]
DOの後のコマンドは、本質的に独自の引用符で囲まれています。ソースまたは宛先にスペースが予想される場合は、二重引用符を使用してそれらをカプセル化します。例:
FOR /R "source folder with spaces" %%G IN (*.pdf) DO move "%%G" "dest path with spaces"
%% Gの前後の引用符に注意してください。これらはmoveコマンドがパスを解決するために必要です。
**編集:受け入れられた回答への応答として、WindowsのコマンドプロンプトXPおよびWindows 7のそれぞれ:
これは、ワイルドカードがパスでは機能せず、単一のディレクトリ(C:\ folder * .filesなど)内のファイルに対してのみ機能することを示しています。コマンドプロンプトは、ワイルドカードを検出しても再帰的には動作しません。
Windowsエクスプローラーでこれを行う別の方法があります(コマンドプロンプトではなくGUI):
私はこれがスーパーレートであることを知っていますが、万一に備えて.
これを使用して、すべてのサブフォルダーで.MKVファイルを検索し、バッチファイルが存在する現在のディレクトリに移動します。
FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
FOR %%X in (*.mkv) DO (
move "%%X" "%CD%"
)
popd
)
@echo on
for /r "F:\All_drawings\newdrg\" %%x in (*.tiff) do move "%%x" "F:\Alldrawings"
pause
{newdrg
フォルダーとその「サブフォルダー」からターゲットフォルダーAlldrawings
にすべてのファイルを移動します。このコマンドは、コマンドラインのバッチファイル操作用で、両方の場所で単一の「%」を使用します}。
Robocopyは私に不思議に思いました:
robocopy c:\cache c:\cache-2012 ?????-2012*.hash /S /MOV
私はそれを使用して、特定のマスクを持つすべてのファイルをc:\cache
とその多数のサブディレクトリ。
ここでは、暗闇の中でワイルドスタブを使用していますが、覚えていると、DOSはグロブを処理でき、mv
に相当するものはMOVE
なので、次のようになります。
MOVE C:\FOLDER1\*\*.PDF C:\FOLDER1\
MOVE "C:\FOLDER 1\PDF FILES\*.pdf" "C:\FOLDER 1"
MOVE "C:\FOLDER 1\DB FILES\*.db" "C:\FOLDER 1"
移動コマンドを実行すると、ソースフォルダーの後にファイルの移動先が表示されます。各ファイル拡張子の前の*は、そのディレクトリ内に存在する指定されたすべてのファイルタイプを選択するワイルドカード関数です。
また、必要に応じて、これらのコマンドで.batファイルを作成できます。これを行うには、コマンドをメモ帳に貼り付け、。txtではなく。batとして保存します。
次に、ファイルをダブルクリックすると、実行するたびにファイル内のコマンドが実行されます。これは、これを必要とする反復的なタスクがある場合に役立ちます。