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 :

Résultat de 2 commandes dans un fichier sur UNE seule ligne [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Résultat de 2 commandes dans un fichier sur UNE seule ligne
    Bonjour à vous tous,

    Je suis en train de m'arracher les cheveux sur un truc qui parait relativement simple.
    Je souhaite récupérer les valeurs de deux variables et les envoyer dans un fichier sur une seule et même ligne et séparées par un point-virgule (pour un futur csv).

    Voici mon code :

    Code bat : 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
    ::Déclaration des variables
    
    set Secedit=c:\temp\%computername%-secedit.txt
    set Audit=c:\temp\%computername%-LogOnLocally.txt
    set Resultat=c:\temp\%computername%-resultat.txt
    
    ::Extraction des valeurs du secedit dans le fichier Secedit
    
    secedit /export /cfg %Secedit%
    
    ::Recherche de la ligne SeInteractiveLogonRight dans Secedit et extraction de la ligne dans Resultat
    
    type %Secedit% | findstr "SeInteractiveLogonRight" > %Resultat%
    
    ::Création du fichier Audit avec valeur hostname et contenu séparés par un point-virgule
    
    set Ligne=type %Resultat%
    echo %computername%;%Ligne% > %Audit%
    
    ::Suppression des fichiers temporaires
    
    del %Secedit%
    del %Resultat%

    C'est donc au niveau de la ligne 18 que ça pose problème.
    Je n'arrive pas à lancer 2 commandes et récupérer leurs résultats dans une ligne (j'ai essayé tous les opérateurs &, &&, |, etc...)

    J'ai essayé ceci :
    - %computername%;%Ligne% > %Audit%
    - %computername% & %Ligne% > %Audit%
    - en déclarant le hostname dans une variable mais c'est inutile...
    - avec un pipe mais c'est inutile...
    - avec variable et en parsant directement le contenu : type %Host% & type %Resultat% > %Audit%...

    Bref dans tous les cas je n'obtiens que la dernière commande passée en paramètre ou le nom de la variable (cad "type %Resultat%" par exemple et non la valeur qu'elle contient)

    Pour info j'ai déjà la même chose en Powershell qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "%Hostname%;%Content%" | Out-file -filepath %Audit% -encoding ascii
    Mais là je dois faire ça sur du 2003...

    Merci de votre aide

  2. #2
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Bonjour,

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    set Ligne=type %Resultat%
    Pourquoi "type " et pas simplement:
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    set Ligne=%Resultat%
    Est-ce que si vous faites un echo %Resultat% ça fonctionne?
    Avez-vous un message d'erreur, si oui merci de détailler.

    Je n'ai fais que ceci:
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set Ligne=1337
    set Audit=%CD%\log.txt
    echo %computername%;%Ligne% > %Audit%
    Et ça m'a bien retourné:
    ADRIENDS-PC;1337
    Par contre avec "type " rien ne s'est fait.
    Dans tous les cas, merci de nous tenir au courant.
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  3. #3
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    salut,

    Essaye de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set Ligne=type %Resultat%
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set /p Ligne=<%resultat%
    Et ça devrait marcher

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  4. #4
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    "Aujourd'hui, 17h41"
    ...
    Sachadeeee! ( ^^ )
    Oublie mon post et écoute le grand maître Sachadee
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Woww que de réactivité.
    Je teste tout ça direct au taf demain.
    Merci beaucoup.

    EDIT :
    Le lendemain.
    Parfait merci beaucoup ça fonctionne. Je n'aurais vraiment pas penser à insérer la valeur de ma variable %Résultat% avec le =< !!!

    Pour info, et pour les autres, créer d'abord le fichier, le remplir avec 2 lignes et ensuite faire une boucle qui va recréer le fichier en une seule ligne fonctionne aussi (mais c'est bien plus lourd que la syntaxe de sachadee !!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo %computername%;>%Audit%
    type %Resultat%>>%Audit%
    for /f  "delims=" %%a in ('type %Audit%') do set l=!l!%%a
    echo %l% >%Audit%
    Merci encore à vous

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

Discussions similaires

  1. Résultats d'une requête sur une seule ligne
    Par bobic dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/08/2008, 16h53
  2. Résultats de awk sur une seule ligne
    Par d10g3n dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 09/07/2008, 21h05
  3. Totalisation sur une seule ligne de commande
    Par lodan dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/09/2007, 17h51
  4. Plusieurs résultats sur une seule ligne
    Par Morphorpse dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/08/2007, 19h36
  5. Relation un à n : mettre les résultats sur une seule ligne
    Par juju33 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 13/08/2007, 09h57

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