Bonjour,
Je cherche à développer un petit script en MSDOS, que je n'ai pas touché depuis 10 ans, et je suis perdu par cette syntaxe pourrie.
Le script cherche le binaire Python puis tente de récupérer sa version (python -V) dans une variable. Or Python sort sa version par le canal d'erreur.
Ca se fait en deux lignes en shell sous Unix, mais sous Win, c'est la galère.
@ECHO OFF
SETLOCAL
for /F "usebackq delims=" %%i IN (`dir python.exe /B/S/L^|find "python.exe"`) DO
(
set chemin=%%i
)
for /F "usebackq" %%v IN (`"%chemin%" -V 2>&1`) do set ver=%%v
|
La première partie (recherche du chemin) fonctionne bien. Pas la seconde. A l'exécution j'obtiens :
2>&1 était inattendu.
A priori on ne peut pas faire de redirection dans le for. Si je tape la commande avec redirection hors du for ça fonctionne. Comment récupérer la sortie STDERR dans ma variable ?