Forum Programmation.shell [batch] ouille /o\ Du bon usage du pipe et de set

Posté par  .
Étiquettes : aucune
-3
12
juil.
2011

Bonjour à tous !

Dans le cadre d'un travail, on me force à faire du batch parce qu'il parait que c'est plus "user-friendly"...

Bref, j'ai un sed et je veux en stocker le résultat. Par exemple (ici pour remplacer les \ d'un path windows par les / d'un path unix):

 :: %CD% est le résultat d'un pwd
echo %CD% | sed s;\\;/;g | set %new_cd%=

Ceci ne marche évidemment pas, ce serait trop beau.

Une idée ? Je commence à sécher moi...

  • # l'affectation ne se fait pas par un pipe

    Posté par  . Évalué à 1.

    par contre

    toto=$(echo $CURPATH | sed 's/\\/\//g')
    

    je suppose que c'est le même principe en batch.

  • # J'oubliais

    Posté par  . Évalué à 0.

    J'ai oublié de préciser que les solutions que j'ai vu étaient à base de FOR ou de fichiers temporaires.

    Le FOR, c'est hors de question, j'ai un honneur quand même. Le fichier temporaire, c'est triste mais j'ai peur de devoir m'y résoudre...

    • [^] # Re: J'oubliais

      Posté par  . Évalué à 0.

      La solution à base de fichier temporaire marche... mais c'est gruik.

      Y-t-il une vraie solution à ce problème ?

  • # Support Microsoft

    Posté par  . Évalué à 8.

    Pour les questions à propos du "shell" de Microsoft, il y a tout bêtement des forums spécialisés, ou le support officiel de l'éditeur.

    Tu as déjà l'air d'avoir les seules réponses qui existent (tes messages plus bas), je ne vois pas ce qu'un forum Linux pourrait t'apporter.
    Il ne te reste plus qu'à accepter d'utiliser ces méthodes qui ne te plaisent pas. Encore une fois, ce sont les deux seules.

  • # sed

    Posté par  . Évalué à 2.

    Il y a sed sous Windows ? Ou alors ça vient de cygwin ou un truc comme ça ?
    Parce que du coup, tu peux toujours lancer un bash -c 'tacommande' dans le batch Windows ;-)

    DLFP >> PCInpact > Numerama >> LinuxFr.org

    • [^] # Re: sed

      Posté par  . Évalué à 1.

      Merci GnuWin32 http://gnuwin32.sourceforge.net/packages/sed.htm :)

      Donc tu mets l'executable et les 3 dll dans un dossier que tu dile à n'importe qui, il pourra s'en servir.
      Penser à mettre aussi les dépendances par contre, c'est pas avec mais c'est sur la même page.

  • # à argument bidon, argument bidon et demi

    Posté par  . Évalué à 2.

    Puisqu'on te demande d'être amical avec l'utilisateur, utilise carrément Powershell.
    C'est un des rares trucs que Microsoft a fait correctement. Du moins jusqu'à présent je ne suis pas tombé sur les stupidités habituelles, je manque peut-être d'expérience.

    Parce que franchement le batch ça pue un max:
    illisible
    pas puissant
    obligé d'utiliser une tonne de programmes qui ne sont pas d'origine sur le système
    etc ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.