0

したがって、メインディレクトリ内の複雑なサブディレクトリ内でファイルをソートするための次のコードがあります。

@ECHO OFF
SETLOCAL

SET relroot=g:\Pictures\Uda 18
(SET relroot=g:\Pictures\Uda 18)
SET "relroot=g:\Pictures\Uda 18"

SET "destdir=g:\Pictures\Uda 18\Sets"

:again
(SET artist=)
SET /p artist="Artist? "

IF NOT DEFINED artist GOTO :eof

MD "%destdir%\%artist%" 2>nul

FOR /f "delims=" %%i IN ( 
   ' dir /s /b /a-d "%relroot%\*%artist%*" '
   ) DO (
>>undo.txt ECHO %%i^|%destdir%\%artist%\%%~nxi
MOVE "%%i" "%destdir%\%artist%\%%~nxi" >nul)
)

GOTO again

入力を受け取り、ディレクトリ「Uda 18」とその中のすべてを検索し、名前に入力を含むすべてのファイルを、ディレクトリ「Uda 18/Sets」の下の入力にちなんで名付けられたフォルダーに移動します。しかし、不注意なテストにより、「Uda 18/Sets」からファイルを抽出するようになりました。その名前は、バッチを使用して再編成できないことを意味します。これを回避するには、ファイルの取得元から「Uda 18/Sets」を除外する必要がありますが、方法が見つかりません。タイトルが尋ねるように。選択したサブディレクトリをスキップすることは可能ですか?

4

4 に答える 4

0

「sets」フォルダー以外のファイル名を描画するには、これを試してください。

dir /b /s /a-d "uda 18" | find /v /i "sets"

...そしてあなたのフォルダで:

echo "%destdir%\%artist%" | find /v /i "sets" >nul && goto:createFolder || goto:eof
于 2013-04-28T10:58:19.857 に答える
0

個人的には、次のディレクトリ内ではなく、ソース ディレクトリ以外に宛先ディレクトリを作成することをお勧めします。

source:        g:\pictures\uda 18\xxx
destination:   g:\pictures\sorted\uda 18\xxx

このようにして、その問題を回避するだけでなく、常に明確で一貫したディレクトリ構造が得られます

于 2013-04-28T11:08:20.050 に答える