salut,
les Shells comme Bash/KSH/PS et autres implémentent une fonctionnalité puissantes qui s'appelle les "sous-expression", techniquement, cette fonctionnalité permet de créer un environnemnt temporaire pour executer n'importe quelle commande...et si on affecte à cet sub-expression une variable, la sortie sera injecter dans cette variable..
exemple:
cette notion de sub-expression n'existe pas dans cmd.exe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $psh=get-childItem $bsh=$(ls)
Il existe une commande externe (export.exe) qui permet d'emuler les sous-expression mais elle ne permet d'afficher que la première ligne de la commande passé comme argument:
on peux en bricollant un peux trouver des solutions. par exemple, utiliser des fichiers temporaires...mais on perdera tout le sens des sub-expression..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 export var=`date` echo %date%
heureusement, Et puisque rien n'est impossible, voici une un petit code, simple mais puissant...qui nous aidera à travailler plus aisemment avec cmd.exe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @echo off :: export <variable> <command> :: export cmd dir :: export var "type c:\fichier.txt" :: set var=%1 set cmd=%~2 (Set LF=^ ) Setlocal EnableDelayedExpansion for /f "delims=" %%o in ('!cmd!') do (set %var%=!%var%!%%o!LF!) echo !%var%!
Partager