@ECHO OFF
SETLOCAL
::
:: These are YOUR relative-root (base of scanning tree)
:: and destination
:: No idea where SSESS appears from... :(
::
SET SSESS=P_5013
SET relroot=I:\2013CAPTURE\b-p_98
SET dest=\\Nascfmj1\DOCNUM\partition
::
:: These are MY directories used for testing
::
SET dest=C:\destdir\%ssess%
SET relroot=u:\b-p_98
SET entier=%dest%\entier\%SSESS%
SET conservation=%dest%\conservation\%SSESS%
SET pochette=%dest%\pochette\%SSESS%
::
:: This is for a test - creating dummy files
:: 3 directories, 3 ".png" files in each,
::
FOR /L %%i IN (1000,1,1002) DO (
MD %relroot%\p_%%i
FOR /L %%f IN (2000,1,2002) DO (
dir>%relroot%\p_%%i\p_%%i_%%f.png
)
)
::
:: Routine proper - create pochette
::
MD %pochette%
FOR /f %%a IN ('dir /ad/b "%relroot%\P_????" ' ) DO (
PUSHD "%relroot%\%%a"
FOR /f %%i IN ('dir /b /a-d P_*.png ') DO (
CALL :CONVERT %%i -resize 1500x1500 %%~ni.jpg
)
MD %entier%\%%a
move *.jpg %entier%\%%a
mkdir %conservation%\%%a
copy *.png %conservation%\%%a
copy *.pdf %entier%
CALL :convert *0001.png -resize 1500x1500 %%a_COUV.jpg
copy *_COUV.jpg %pochette%
POPD
)
GOTO :eof
::
:: I don't have CONVERT.EXE...
::
:CONVERT
ECHO execute command: CONVERT %*
::
:: Two different situations:
:: either create DUMMY .PDF and .JPG
:: OR DUMMY _COUV
ECHO %*|FINDSTR /i "couv" >NUL
IF ERRORLEVEL 1 (
DIR >%4
DIR >%~n4.PDF
) ELSE (
DIR >%4
)
GOTO :eof
これで問題は解決するはずです。
SSESS がどこから来たのかわからないのでSET
、ファイルの先頭に置きます。
relroot
スキャンを開始dest
する場所、ファイルが移動またはコピーされる場所に設定されます。私はすぐにそれらを MY テスト ディレクトリにリセットしました。テスト用に、現実的なデータの同様のツリーをセットアップすることをお勧めします。
次に、、entier
およびconservation
ディレクトリpochette
が計算されます。
次に、テスト領域にダミーの「.png」ファイルとディレクトリをいくつか作成しました。
pochette
あなたがルーティンで作っていないことに気づいたので、作ってみました。
次に、メインルーチン - P_???? に一致する各ディレクトリ名 ディレクトリ内の%relroot%
は に順番に割り当てられて%%a
いるため、%%a
置き換えます%DSESS%
PUSHD が選択したディレクトリ名に変更されます。このCONVERT
コマンドに慣れている必要があります。の作成をシミュレートするサブルーチンを呼び出し、同時に.jpg
を作成し.pdf
ました。
が.png
処理されると、 のサブディレクトリentier
が作成され、適切な.jpg
がそこに移動されます。同じストーリーとconservation
s.pdf
がディレクトリにコピーされentier
ます。
最後に、convert
ルーチンが再度呼び出されて*_couv.jpg
ファイルが完成し、次の場所に移動できます。pochette
POPD は元のディレクトリを復元し、すべてのディレクトリが完了するまで続行します。
したがって、このルーチンはどこからでも実行できます。現在のディレクトリが何であるかは関係ありません。
良いテストです!
HTH