Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[R] Redirection retardée d'un pipe avec un call :label.
Auteur Message
Répondre en citant
Message [R] Redirection retardée d'un pipe avec un call :label. 
Bonjour.

J'ai un soucis dans darkbox que je n'arrive pas à résoudre, c'est la nécessité du lanceur.

Voici le code :
Code:
@Echo off
call :test | darkbox
goto :eof

:test
echo -d test
pause>NUL
echo -rq
goto :eof
La commande qui va avec : https://up.nerdby.net/#ca7sw5ZCzpI_clRj18U3lQ

Le soucis est simple, j'aimerais que "-d test" soit reçu avant que le goto :eof soit atteint (c'est à dire, juste avant avant le pause>NUL), cependant, ce n'est étrangement pas le cas, par contre, je ne veut pas utiliser un autre fichier (car ça ne corrige en rien le problème d'origine).

Petite information : ce soucis n'affecte que cmd, dos9 n'a pas ce soucis.



Dernière édition par TSnake41 le Dim 23 Oct 2016 - 18:57; édité 1 fois

______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [R] Redirection retardée d'un pipe avec un call :label. 
Hello,

J'ai pas testé avec DarkBox, mais essais comme ça :

Call test | DarkBox

C'est le : qui pose problème pour moi en DOS.


Après faut jouer avec des parenthèses si t'as un problème de priorité :

Exemple :
(Call test) | DarkBox


Okay




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Redirection retardée d'un pipe avec un call :label. 
Logan a écrit:
Hello,

J'ai pas testé avec DarkBox, mais essais comme ça :

Call test | DarkBox

C'est le : qui pose problème pour moi en DOS.


Après faut jouer avec des parenthèses si t'as un problème de priorité :

Exemple :
(Call test) | DarkBox


Okay
Le soucis est que call test appelle le fichier/commande test et pas le label :test, cela ne résout donc pas vraiment le soucis.

Sinon, j'ai réfléchi a quelque chose comme :
Code:
@Echo off
if defined __ goto :test
set __=y
call %0 %* | darkbox
goto :eof

:test
set __=
echo -d test
pause>NUL
echo -rq
goto :eof





______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [R] Redirection retardée d'un pipe avec un call :label. 
Pourquoi pas:

Code:

@echo off
if not defined $ (
   set "$=1"
   (
      call "%~f0" %*
      echo;-rq
   ) | darkbox
   exit/b
)


Edit j'avais oublié un détail xd



Dernière édition par lb999 le Mar 28 Fév 2017 - 15:55; édité 3 fois
Répondre en citant
Message Re: [R] Redirection retardée d'un pipe avec un call :label. 
Hello !

TSnake41 a écrit:
Petite information : ce soucis n'affecte que cmd, dos9 n'a pas ce soucis.

Je sais pourquoi tu as pas le problème avec dos9, c'est que le pipe n'est pas géré de la même façon par dos9 et cmd.

En fait, quand on tombe sur un pipe, le processus de l'interpréteur est dupliqué (un fork quoi) et chaque partie du pipe est exécuté dans un processus de l'interpréteur.
La différence entre Dos9 et Cmd, c'est le processus qui reste actif à la fin ... Petit schéma pour expliquer :



Comme on le voit, pour dos9, le processus "survivant" est celui qui a reçu la sortie du pipe, alors que pour cmd le processus survivant est celui qui a reçu l'entrée du pipe.
Chacune des approches à ses avantages et ses défauts, mais je préfère la manière de procéder de Dos9, parce qu'elle conserve le déroulement logique des commandes (on attaque pas une nouvelle ligne tant que l'éxecution n'est pas terminée), et on peut faire ça :

Code:
echo test | set /p var=


@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Message [R] Redirection retardée d'un pipe avec un call :label. 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch