Bonjour,

J'ai un problème sur mon Batch, je récupère des pièces jointes de via un script python que je vient exploiter avec un fichier Batch.
Les fichiers arrive dans le dossier "Scan" puis sont renommer si il y a un espace dans ce nom de fichier. Ensuite, ils sont imprimer automatiquement et copier sur un dossier de sauvegarde "CopyScan".
Le problème est qu'il essaye d'imprimer avant même que le fichier soit renommer, dans la continuité, il renomme, copie et imprime bien les documents.

Exemple :
Si j'ai 2 documents "TEST 1.pdf" et "TEST 2.pdf" dans mon dossier "Scan"(2 documents avec des espaces), le script essayera d'imprimer TEST 1.pdf puis dira "Impossible d'imprimer ce fichier" et renommera ensuite les 2 fichiers pour les copier et les imprimer après.
Au final j'aurai "TEST 1.pdf", "TEST1.pdf" et "TEST2.pdf" dans mon dossier de sauvegarde "CopyScan".

On dirait que le script n'a pas le temps de renommer le fichier avant que celui-ci soit envoyé à l'impression.

Quelqu'un aurait une solution pour le que le script renomme tout les fichiers puis les copies/imprime dans un second temps.

Merci de votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
@echo off

REM ----------------------------------------------------------------------------------------------------------------------
REM -----------------------------Impression PDF TEST---------------------------------------------------------------
REM ----------------------------------------------------------------------------------------------------------------------

	cd "D:\BD\Script\"
	python test.py

REM ----------------------------------Initiation des variables---------------------------------------------------------------

	set SCAN="D:\BD\TEST\Scan\"
	set SUMATRA="C:\Program Files\SumatraPDF\SumatraPDF.exe"
	set IMPRIM="TEST"



set "$chemin=D:\BD\TEST\Scan\"
 
pushd "%$chemin%"

for /f "delims=|" %%f in ('dir /b D:\BD\TEST\Scan\') do (
for /f "delims=" %%a in ('dir /b /a-d') do call :cmd "%%a"


:cmd
set old=%~1
set fichier=%old: =%
ren "%old%" "%fichier%"

)


dir /b "D:\BD\TEST\Scan\*.pdf">D:\BD\TEST\Temp\edition_test.txt

	for /f "delims=" %%A in (D:\BD\TEST\Temp\edition_test.txt) do (
		 echo Impression du fichier :%%A

REM ------------------------------Impression du fichier------------------------------------------------------------------------

	
	%SUMATRA%  -print-to  %IMPRIM% -exit-on-print D:\BD\TEST\Scan\%%A
	copy "D:\BD\TEST\Scan\%%A" "D:\BD\CopyScan\%%A"

REM ---------------------------Suppression du fichier dans le repertoire courant-------------------------------------------------

	DEL D:\BD\TEST\Scan\%%A /Q
)



DEL D:\BD\TEST\Temp\edition_test.txt



REM --------------------------Supprimer les fichiers de plus de 90 jours-------------------------------------------------

forfiles /p "D:\BD\TEST\CopyScan" /s /m *.* /c "cmd /c Del @path" /d -90