IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

[DOS] Boucle for FINDSTR probleme de matching


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 37
    Points
    37
    Par défaut [DOS] Boucle for FINDSTR probleme de matching
    bonjour je chercher a boucler dans un repertoire et lire uniqumement les fichiers contenant .csv et .xml

    une fois que j'ai lu un fichier je veux verifier que son nom contient l'un des code suivant N01 N66 F05 N90, si ça matche je veux effectuer une commade Get car je dois la telecharge du ftp.

    je n'arrive plus a faire marche mon script en dynamique

    pouvez vous m'aider et voir ce qui ne va pas.
    Merci


    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
    REM Créer le fichier de script temporaire
    echo open sftp://%USERNAME%:%PASSWORD%@%HOSTNAME% -hostkey=acceptnew > %SCRIPT_FILE%
    echo cd %REMOTE_PATH% >> %SCRIPT_FILE%
    
    rem Boucle à travers chaque fichier dans le chemin local et exclut les code societe
    for %%F in (%LOCAL_PATH%\*20240528*.csv %LOCAL_PATH%\*20240528*.xml) do (
        echo %%~nxF | findstr /R /C:"N01 N66 F05 N90" >nul
    rem non trouvé
        if not errorlevel 0 (
            echo get %%~nxF %LOCAL_PATH%\ >> %SCRIPT_FILE%
        )
    )
    rem echo rm * >> %SCRIPT_FILE%
    echo exit >> %SCRIPT_FILE%
    
    REM Exécuter WinSCP avec le fichier de script
    %WINSCP_PATH% /script=%SCRIPT_FILE%

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 201
    Points : 5 795
    Points
    5 795
    Par défaut
    Essaie ceci

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    REM Créer le fichier de script temporaire
    echo open sftp://%USERNAME%:%PASSWORD%@%HOSTNAME% -hostkey=acceptnew > %SCRIPT_FILE%
    echo cd %REMOTE_PATH% >> %SCRIPT_FILE%
     
    rem Boucle à travers chaque fichier dans le chemin local et exclut les code societe
    for %%F in (%LOCAL_PATH%\*20240528*.csv %LOCAL_PATH%\*20240528*.xml) do (
        echo %%~nF | findstr "N01 N66 F05 N90" 1>nul&&(echo get %%~nxF %LOCAL_PATH%\ >> %SCRIPT_FILE%)
    )
    rem echo rm * >> %SCRIPT_FILE%
    echo exit >> %SCRIPT_FILE%
     
    REM Exécuter WinSCP avec le fichier de script
    %WINSCP_PATH% /script=%SCRIPT_FILE%

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    dev
    Inscrit en
    Mai 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mai 2005
    Messages : 33
    Points : 37
    Points
    37
    Par défaut
    J'ai du mal à voir où ça cloche car ce que tu me proposes, après analyse, me paraît cohérent, mais ça ne marche toujours pas.

    mon ancien script fonctionne toujours mais il est barbare

    Code batch : 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
    REM Vérifier et créer le répertoire local s'il n'existe pas
    if not exist %LOCAL_PATH% mkdir %LOCAL_PATH%
     
    REM Nom du fichier de script temporaire pour WinSCP
    set SCRIPT_FILE=D:\SFTPXXX\Script\winscp_script.txt
     
    REM Créer le fichier de script temporaire
    echo open sftp://%USERNAME%:%PASSWORD%@%HOSTNAME% -hostkey=acceptnew > %SCRIPT_FILE%
    echo cd %REMOTE_PATH% >> %SCRIPT_FILE%
     
    for %%F in (%LOCAL_PATH%\*20240528*.csv %LOCAL_PATH%\*20240528*.xml) do (
        echo %%~nF | findstr "N01 N66 F05 F50 N90" 1>nul&&(echo get %%~nxF %LOCAL_PATH%\ >> %SCRIPT_FILE%)
    )
     
    rem echo get *%current_date%*.csv *%current_date%*.xml %LOCAL_PATH%\ >> %SCRIPT_FILE%
     
     
    rem echo rm * >> %SCRIPT_FILE%
    echo exit >> %SCRIPT_FILE%

Discussions similaires

  1. boucle for et problème de cout
    Par partouchefrancis dans le forum C++
    Réponses: 7
    Dernier message: 12/09/2017, 17h58
  2. [Débutant] Boucle for et probleme de variable ;x
    Par Pilout51 dans le forum VB.NET
    Réponses: 2
    Dernier message: 01/07/2011, 11h10
  3. [DOS] Boucle FOR : récupérer %%i dans une variable
    Par Pomalaix dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 06/12/2005, 16h18
  4. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22
  5. [C#] Probleme de boucle for et random
    Par Freeman166 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/01/2005, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo