%x:~12,3%
Renvoie 3 caractères à partir du 12ème caractère dans la variable x. Ce que j'ai essayé d'accomplir utilise des variables au lieu de 12
et 3
. Disons par exemple et z=3
. Ensuite, vous ne pouvez pas utiliser %x:~%y%,%z%%
, car CMD pensera que %x:~%
est une variable.CMD: pipetage ECHO pour définir/étendre les variables dans les variables
Ce que vous pouvez faire est set var=%%x:~%y%,%z%%%
. Cela étendra les variables internes y
et z
, mais pas x
, de sorte que la valeur de var
soit %x:~12,3%
. La tâche restante actuelle est de développer enfin %x:~12,3%
. J'ai essayé d'ajouter echo
au début de sorte que var=echo %x:~12,3%
. Si vous utilisez maintenant %var%
dans la ligne de commande ou dans un fichier séquentiel, la commande echo doit être exécutée et l'expression suivante doit être développée, mais pas echo %x:~12,3%
à la place %x:~12,3%
est imprimée à l'écran, non expansée.
Je pensais que peut-être si vous définissez var %x:~12,3%
, puis l'écho et conduit la sortie dans une autre commande ECHO
ou SET
commande que l'expression serait élargie, mais il semble que ECHO
et SET
n'accepte pas les données être canalisé dans tout cela?
Comment est-ce que je peux faire ce travail?
Ce type de gestion est expliquée à: http://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in -cmd-exe-batch-script/10167990 # 10167990 – Aacini
Vraiment, où exactement? J'ai regardé cette page mais je n'ai rien trouvé sur l'utilisation de variables pour spécifier une partie d'une chaîne à extraire. – user504882
Comme je l'ai dit, ce type de gestion est expliqué à ce lien, c'est-à-dire, comment utiliser la valeur de _une autre variable_ dans l'expansion de l'original. Voir [ma réponse] (http://stackoverflow.com/questions/35532216/cmd-piping-echo-to-set-expanding-variables-in-variables/35538235#35538235) ci-dessous. – Aacini