Il faut être un peu prudent, depuis les Fenêtres de commande de traitement par lots:
for /f "delims=" %%a in ('command') do @set theValue=%%a
ne pas avoir la même sémantique que le shell Unix déclaration:
theValue=`command`
Considérons le cas où la commande échoue, ce qui provoque une erreur.
Dans le shell Unix version, l'assignation à "theValue" se produit encore, toute valeur précédente d'être remplacé par une valeur vide.
Dans le Windows version batch, c'est le "pour" de commande qui gère l'erreur, et le "faire" de la clause n'est jamais atteinte et, donc, toute valeur précédente de "theValue" sera conservée.
Pour obtenir plus d'Unix-like de la sémantique dans Windows script batch, vous devez vous assurer que la cession a lieu:
set theValue=
for /f "delims=" %%a in ('command') do @set theValue=%%a
À défaut pour effacer la valeur de la variable lors de la conversion d'un script Unix à Windows de lot peut être une cause de subtiles erreurs.