@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
到的文件將被移動或複製。我立即將它們重置爲我的測試目錄 - 我建議您進行測試,建立一個類似的實際數據樹。
然後entier
,conservation
和pochette
目錄進行計算。
我在測試區創建了一些虛擬的「.png」文件和diretories。
我注意到你沒有在日常生活中使用pochette
,所以我做了一個。
然後主程序 - 每個目錄名匹配P _ ????在目錄%relroot%
又被分配到%%a
,所以%%a
取代%DSESS%
的PUSHD變化到所選擇的目錄名,你應該熟悉CONVERT
命令。我調用了一個子程序來模擬.jpg
的創建,同時創建了.pdf
。
當.png
已經被處理時,entier
的子目錄被創建並且合適的.jpg
被移動到它。與conservation
和.pdf
相同的故事被複制到entier
目錄。
最後,convert
程序再次調用來完成*_couv.jpg
文件,然後可以移動到pochette
的POPD恢復原來的目錄,我們將繼續,直到所有的目錄就完成了。
因此,這個例程可以從任何地方運行 - 不管目前的目錄是什麼。
良好的測試!
HTH
非常感謝你,我要去檢查這個現在>> – 2013-04-08 07:38:22