Regrouper toutes les commandes en un seul script (WinSCP + cmd D

Résolu/Fermé
Cadapen067
Messages postés
6
Date d'inscription
lundi 30 janvier 2017
Statut
Membre
Dernière intervention
30 août 2018
- 30 janv. 2017 à 12:16
barnabe0057
Messages postés
13837
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 mai 2022
- 30 janv. 2017 à 16:56
Bonjour à tous,

J'aimerais regrouper chaque morceaux en un script (acheminement ci-dessous) :

1er étape - Copie des dossiers et sous répertoire (avec WinSCP)
2eme étape - Suppression fichiers/dossiers (ftp://SQCUSER:*****@192.168.10.101/) repertoire : /IND890SQC/Reports
3eme étape - Déplacement des *.csv (regroupés sur les différents dossiers du rép : /IND890SQC/Reports) vers la racine du dossier depuis Y:\Dossier
4eme étape - mdelete * (de tous les fichiers et dossiers nommés "Sample") de tous les dossiers/fichier du dossier (Y:\Dossier)
5eme étape - Exécution de la macro :
(Sub Déclenche()
Application.OnTime TimeValue("15:10:00"), "Recup"
End Sub)

Par avance merci !

1 er étape : Rem Copie des dossiers FTP vers Sauvegarde (avec WinSCP)
"C:\Program Files\WinSCP\WinSCP.com" ^ /ini=nul ^
/command ^
"open ftp://SQCUSER:****@192.168.10.101/" ^
"cd /IND890SQC/Reports" ^
"lcd C:\Users\cheyenne\Desktop\Dossier" ^
"get *"
"exit"

set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
echo Success
) else (
echo Error
)

exit /b %WINSCP_RESULT%

2ème étape : ajout du "rm *" (ceci permettra de supprimer tous les dossiers présents sur le ftp) avec WinSCP

3ème étape : (Basculement en cmd simple "cmd.exe")
set source="Y:\Dossier"

for /f "tokens=*" %%A In ('dir /s /b /a-d "%source%\*.csv"') do (move /y "%%A" "%source%")

4eme etape :
Fonction récursive (Suppression fichiers "Sample") :

@echo off

set source=le dossier "racine"

cd %USERPROFILE%

for /f "tokens=*" %%A In ('dir /a-d /b /s %source%\*.* ^| find /i "Sample"') do (del /f "%%A" && echo %%~sA = suppression OK && echo.)

pause

5eme etape : Rem execution du fichier contenant la macro

"C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE" "X:\METROLOGIE\IND 890\Poidmettler.xlsm"

1 réponse

barnabe0057
Messages postés
13837
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
17 mai 2022
4 804
30 janv. 2017 à 16:56
Voilà le code :

@echo off

set destination=Y:\Dossier


:: 1) on recupere les fichiers sur le serveur FTP

"%ProgramFiles%\WinSCP\WinSCP.com" /ini=nul /command "open ftp://SQCUSER:ACCES@192.168.10.101/" "cd /IND890SQC/Reports" "lcd %destination%" "get *" "exit"

if %ERRORLEVEL% EQU 0 (cls & echo. & echo *** Transfert FTP = Success *** & echo.) else (

cls & echo. & echo *** Transfert FTP = Error *** & echo.

ping -n 5 127.0.0.1 > nul

goto :eof

)

echo. & echo ****** La suppression des fichiers va commencer ******

echo. & ping -n 5 127.0.0.1 > nul


:: 2) on supprime les fichiers sur le serveur FTP

"%ProgramFiles%\WinSCP\WinSCP.com" /ini=nul /command "open ftp://SQCUSER:ACCES@192.168.10.101/" "cd /IND890SQC/Reports" "rm *" "exit"


:: 3) on copie les fichiers csv a la racine du dossier %destination%

for /f "tokens=*" %%A In ('dir /s /b /a-d "%destination%\*.csv"') do (copy /y "%%A" "%destination%")


:: 4) on supprime recursivement les fichiers et dossiers Sample du dossier %destination%

cd %USERPROFILE% || cd /d %USERPROFILE%

for /f "tokens=*" %%B In ('dir /ad /b /s "%destination%\*.*" ^| find /i "Sample"') do (rmdir /s /q "%%B" && echo %%~sB = suppression OK && echo.)

for /f "tokens=*" %%C In ('dir /a-d /b /s "%destination%\*.*" ^| find /i "Sample"') do (del /f "%%C" && echo %%~sC = suppression OK && echo.)


:: 5) on execute une macro Excel

start /D "%ProgramFiles%\Microsoft Office\root\Office16" /B excel.exe "X:\METROLOGIE\IND 890\Poidmettler.xlsm"

:eof
0