2

.pdf ファイルでいっぱいのターゲット フォルダーを見て、ファイル名に基づいて既存のサブフォルダーを持つ別のディレクトリにそれらを移動 (またはコピー) する Windows バッチ スクリプトを作成する方法を見つけようとしています。

ファイルとフォルダは実在の人物の名前です。スクリプトを使用して、その人のpdfを既存のフォルダーに取得できるようにしたいと考えています。

フォルダーに 2 つのファイルがあるとします。smithJohn015.pdfthomasBill030.pdfsmithJohn015.pdfフォルダーとフォルダーSmithJohnに入れたいと思いthomasBill030.pdfますThomasBill

ファイル名が重複している場合に、スクリプトで新しいフォルダーを作成したり、既存のファイルを上書きしたりしたくありません。

私のためにスクリプトを書いてくれる人を必ずしも探しているわけではありませんが、誰かが私を正しい方向に導くことができれば、それはありがたいことです.

4

3 に答える 3

1

以下は、ターゲット サブフォルダーの場所に PDF が移動する可能性のあるサブフォルダーのみが含まれており、移動するすべての PDF の名前が、対応するサブフォルダーの名前の後に正確に 3 文字が続く形式になっていることを前提としています (例と同じ)。

@ECHO OFF
FOR /D %%D IN ("D:\path\to\subfolders\*") DO (
  MOVE "D:\path\to\PDFs\%%~nD???.pdf" "%%D"
)

または、コマンド プロンプトで直接実行するワンライナーとして:

FOR /D %D IN ("D:\path\to\subfolders\*") DO (MOVE "D:\path\to\PDFs\%~nD???.pdf" "%D")
于 2013-02-19T16:42:33.313 に答える
1

あなたの邪悪な目的のためにこの答えを変更してみてください。

@echo off
setlocal

pushd "c:\path\to\PDFs"

for /d %%I in (c:\Path\To\People\*) do (
    for %%F in (*) do (
        for /f %%A in ('echo %%~nF ^| find /i "%%~nI"') do (
            set /p a="Moving %%F to %%I... "<NUL
            move "%%F" "%%I" >NUL
            echo Done.
        )
    )
)
popd

移動前にチェックを追加する必要がありますが、if not exist pdffileとにかく開始方向があります。

于 2013-02-19T14:33:38.007 に答える