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 :

Script fichier comment par [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut Script fichier comment par
    Bonjour,

    J'ai ce script ci-dessous qui tourne et qui fonctionne. Il récupère dans le dossier KO les fichiers avec l'extension .err
    Puis les bascule dans le dossier IN en enlèvant l'extension .err

    Je voudrais apporter une modification.
    En plus de termine par .err, je voudrais ajouter le paramètre comment par SMS

    Comment dois-je procéder :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <File.au3>
    
    $dir = @scriptdir & "\KO\"
    $dir2= @scriptdir & "\IN\"
    
    $aFileList = _FileListToArray($dir, "*.err")
    $i = 1
    
    while $i <= $aFileList[0]
    $nom = StringTrimRight ($aFileList[$i] ,4)
    FileMove($dir & $aFileList[$i], $dir2 & $nom)
    $i = $i + 1
    wend

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Je traduit avec ce que je suppose être ton besoin :
    En plus de termine par .err, je voudrais ajouter la condition "commence par SMS"

    Réponse
    Code autoit : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <File.au3>
    
    $dir = @scriptdir & "\KO\"
    $dir2= @scriptdir & "\IN\"
    
    $aFileList = _FileListToArray($dir, "SMS*.err")
    $i = 1
    
    while $i <= $aFileList[0]
    $nom = StringTrimRight ($aFileList[$i] ,4)
    FileMove($dir & $aFileList[$i], $dir2 & $nom)
    $i = $i + 1
    wend

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Bonjour,
    Je me suis mal exprimé.
    J'ai des fichiers qui arrivent dans ce dossier KO avec une extension .err et d'autres avec une autre extention.

    La première partie c'est d'enlever le .err à ces fichiers.

    Ce qui se passe actuellement et qui fonctionne et qui est mon code d'origine.

    Maintenant je ne veux que ce qui comment par SMS*** qui soit renvoyer dans le dossier IN.

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Actuellement, ton script récupère dans KO tous les fichiers avec l'extension err
    Après, il les déplaces dans IN en supprimant l'extension.

    Ça ne correspond donc pas à ce que tu dit :
    J'ai des fichiers qui arrivent dans ce dossier KO avec une extension .err et d'autres avec une autre extention.

    La première partie c'est d'enlever le .err à ces fichiers.
    Ce qui se passe actuellement et qui fonctionne et qui est mon code d'origine.

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Je ne suis pas à l'origine de ce script.
    Je comprends vos dires les fichiers sans l'extension .err il les déplace également.
    Par exemple un fichier texte.txt et bien celui là aussi est déplace alors que je ne le souhaite pas.

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Et bien c'est peut être une autre partie du script que celle que tu nous à montré qui fait ce travail ?

  7. #7
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Ce que j'ai dans le script est entièrement dans ce post.
    Donc pour vous un fichier nommé par exemple texte.txt ne devrait pas être envoyé dans le dossier IN d'après ce script ?
    Si vous le confirmez je chercherais ailleurs pourquoi des fichiers dans KO sans le .err sont envoyés dans IN.

    Pour information complémentaire les fichiers que je souhaite déplacer dans IN avec cette fameuse extension en on finalement 2.
    A savoir ils sont nommés SMS***.txt.err
    Il n'y a que ceux là dont j'enlève le .err et transfert vers le dossier IN.

    Du coup est-ce qu'à un moment il n'y a pas une anomalie dans le script qui prend ces fameux fichiers (ce qui est demandé) plus des fichiers plus standard type texte.txt ?

  8. #8
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    La fonction _FileListToArray à des comportements de recherche inattendus (voir documentation : https://www.autoitscript.fr/autoit3/...istToArray.htm).
    Il découvre un fichier toto.err1 selon le motif *.err, ce qui n'est pas normal.

    Voici le script adapté utilisant la fonction recommandée qui fonctionne mieux :
    Code autoit : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <File.au3>
    #include <MsgBoxConstants.au3>
    
    $dir = @scriptdir & "\KO\"
    $dir2= @scriptdir & "\IN\"
    
    Local $aFileList = _FileListToArrayRec($dir, "*.err", $FLTAR_FILES)
    If (@error = 0) Then
       For $i = 1 To $aFileList[0]
    	  FileMove($dir & $aFileList[$i], $dir2 & StringTrimRight($aFileList[$i], 4))
       Next
    EndIf

    J'ai aussi ajouté une vérification d'erreur qui se produit si aucun fichier n'est trouvé.
    Utilise ce code et vérifie si il corrige tes problèmes de déplacement non souhaitée.

    Si tu souhaite uniquement déplacer les fichiers nommée SMS*.txt.err, utilise ce motif dans la fonction _FileListToArrayRec, dans IN tu n'auras alors plus que des fichiers nommés SMS*.txt

  9. #9
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Merci cela répond bien au besoin.

  10. #10
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Bonjour,
    J'ai était un peu vite.
    Je pense avoir suivi vos recommandations dans le script ci-dessous pourtant j'ai des fichiers texte.txt.err qui arrive en dossier KO et qui sont eux aussi renvoyé dans le dossier IN or je pense avoir indiqué que je ne veux que ceux qui comment par SMS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <File.au3>
    #include <MsgBoxConstants.au3>
    
    $dir = @scriptdir & "\KO\"
    $dir2= @scriptdir & "\IN\"
    
    Local $aFileList = _FileListToArrayRec($dir, "SMS*.err", $FLTAR_FILES)
    If (@error = 0) Then
       For $i = 1 To $aFileList[0]
    	  FileMove($dir & $aFileList[$i], $dir2 & StringTrimRight($aFileList[$i], 4))
       Next
    EndIf

  11. #11
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    J'ai beau tester chez moi je ne constate pas ce comportement.
    Oui, ton script est correcte et doit correspondre à tes attentes.

    Tu peux visualiser ce que le script va déplacer avec _ArrayDisplay, pour déboguer (le premier item est le nombre d’élément trouvé)

    Code autoit : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <File.au3>
    #include <MsgBoxConstants.au3>
    #include <Array.au3>
    
    $dir = @scriptdir & "\KO\"
    $dir2 = @scriptdir & "\IN\"
    
    Local $aFileList = _FileListToArrayRec($dir, "SMS*.txt.err", $FLTAR_FILES)
    If (@error = 0) Then
       _ArrayDisplay($aFileList)
       For $i = 1 To $aFileList[0]
    	  FileMove($dir & $aFileList[$i], $dir2 & StringTrimRight($aFileList[$i], 4))
       Next
    EndIf

  12. #12
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    J'ai pris votre script j'ai mais un fichier bidon dedans nommé : dsl.txt
    J'ai lancé le script avec un exécutable il m'a mis "Pas de fichier". Donc normal.

    J'ai modifié le fichier nommé en : dsl.txt.err
    Il me l'a transféré dans le dossier IN en dsl.txt

    Or il ne commence pas par SMS, je ne comprends pas.

  13. #13
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Est tu sur d'avoir bien recompiler l'exécutable.
    Car il doit t'afficher un tableau avec les fichiers à déplacer avant de le faire.

  14. #14
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Nom : Sans titre.png
Affichages : 237
Taille : 7,6 Ko

    Voici la structure de mes dossiers.
    Le fichier.au3 est le script sur lequel vous m'aidez.
    L'exécutable juste en dessous tourne toutes les 10 minutes.

    Pour l'exécutable fait la manipulation d'un double clique sur le script toutes les 10 minutes. Je ne vois pas ce que je dois faire de plus.

    Désolé je débute dans les scripts Windows.

  15. #15
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    As tu remarqué que ton exécutable n'a pas changé (depuis le 16/03/2015) ?

    Tu doit compiler ton fichier .au3 en un exécutable.

  16. #16
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Bonjour,
    Merci ericlm128, c'était bien cela.
    Je viens de tout testé c'est ok.
    Je débute désolé et reprend ce script et ce flux qui n'était pas de moi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/04/2011, 11h11
  2. Réponses: 1
    Dernier message: 31/10/2006, 16h25
  3. Réponses: 7
    Dernier message: 03/11/2005, 18h52
  4. Réponses: 10
    Dernier message: 18/11/2003, 18h01

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