Donner le focus à la fenêtre de commande
Bonjour
J'ai un fichier de commande qui permet un dézippage de fichiers zip et un déplacement des fichiers avec robocopy.
A chaque boucle, j'ai placé pause, histoire de voir ce qu'il s'est passé.
Le code fonctionne parfaitement. Cependant, j'ai des saisies utilisateurs à effectuer entre deux dezippages SET /P folder.
Bref, j'aurai voulu savoir si entre deux boucles, il était possible de redonner le focus à ma fenêtre de commande, afin que j'effectue les saisies, dès qu'une boucle ait achevée sa mission?
Mon code (pas parfait, je sais :? )
Code:
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| @echo off
setlocal enabledelayedexpansion
cls
pause
for /R "C:\Users\LT30694\Desktop\Dezippeur\CFM" %%I in ("*.zip") do (
title Paramétrage des variables
call:extract_informations_title_file %%~dpnI
if !fonction!==DATA (
title Extraction des fichiers du !fonction! !type!
"C:\Program Files\7-zip\7z.exe" x "%%I" -o"%%~dpnI" -r
title Copie vers le serveur des fichiers du !fonction! !type!
robocopy "%%~dpnI" "\\snm.snecma\Partages\SavBiblio\BIBLIOTHEQUE\!moteur!\!type!\!type! - !version! - DVD\viewer" /E /MOVE
set repertoire=%%~dpnI
set fichier=%%I
title Suppression des fichiers zip et dezippe du !fonction! !type!
call:suppression
)
if !fonction!==APP (
title Saisir le nom de la version actuelle
SET /P folder=Saisir le nom de la version actuelle :
IF "!folder!"=="" GOTO Empty
title Saisir le nom de l'ancienne version
SET /P folder2=Saisir le nom de l'ancienne version :
IF "!folder2!"=="" GOTO Empty
title Extraction des fichiers du !fonction! !type!
"C:\Program Files\7-zip\7z.exe" x "%%I" -o"%%~dpnI" -r
title Copie vers le serveur des fichiers du !fonction! !type!
robocopy "%%~dpnI" "\\snm.snecma\Partages\SavBiblio\BIBLIOTHEQUE\!moteur!\!type!\!type! - !version! - DVD" /E /MOVE
set repertoire=%%~dpnI
set fichier=%%I
title Suppression des fichiers zip et dezippe du !fonction! !type!
call:suppression
title Archivage de la version actuelle !folder!
robocopy "\\snm.snecma\Partages\SavBiblio\BIBLIOTHEQUE\!moteur!\!type!\!folder!" "\\snm.snecma\Partages\SavBiblio\BIBLIOTHEQUE\REVISIONS ANTERIEURES\!moteur! N-1\!type!\!folder!" /E /MOVE
title Détection du disque dur
call :DetectLetterExternaHardDisk
title Archivage de l'ancienne version !folder2!
robocopy "\\snm.snecma\Partages\SavBiblio\BIBLIOTHEQUE\REVISIONS ANTERIEURES\!moteur! N-1\!type!\!folder2!" "%letter%:\Civil\!moteur!\!type!" /e /MOVE
pause
)
)
title Operations terminees
echo Operations terminees
pause
exit
:suppression
title Suppression du repertoire decompresse !fichier!
echo Suppression du repertoire decompresse !fichier! en cours
RD /S /Q "!repertoire!"
title Suppression du fichier zip !fichier!
echo Suppression du zip en cours !fichier!
DEL /S /Q "!fichier!"
goto :eof
:extract_informations_title_file
for /f "tokens=2,3,4,5 delims=_" %%a in ('echo %~n1') do (
set fonction=%%a
set moteur=%%b
set type=%%c
set mois=%%d
)
for /f "tokens=1 delims=_" %%a in ('echo %~x1') do set an=%%a
set type=%moteur% %type%
set version=%mois% %an:.=%
goto :eof
:Empty
ECHO Aucune saisie faite!
pause
goto :eof
:DetectLetterExternaHardDisk
FOR %%A IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%A: (
FOR /F "TOKENS=*" %%B IN ('VOL %%A:^|FIND /I "Archive BT"') DO ( SET SYS=%%A)
)
set letter=%SYS%
goto :eof |
Merci beaucoup d'avance