%x:~12,3%
Returns 3 characters starting at the 12:th character in x variable.
What I have been trying to accomplish is using variables instead of 12
and 3
.
Let's say y=12
and z=3
.
Then, you can't use %x:~%y%,%z%%
, because CMD will think %x:~%
is a variable.
What you can do is set var=%%x:~%y%,%z%%%
. This will expand the inside variables y
and z
, but not x
, so that the value of var
is %x:~12,3%
.
The remaining task at hand now is to finally expand %x:~12,3%
. I have been trying to append echo
in the beginning so that var=echo %x:~12,3%
.
If at the commandline or in a batch file you now use %var%
, this should execute the echo command, and expand the succeeding expression, but it doesnt, instead echo %x:~12,3%
results in simply %x:~12,3%
being printed to the screen, unexpanded.
I was thinking that maybe if you set var to %x:~12,3%
, then echo it
and pipe the output into another ECHO
command or SET
command that the expression would be expanded, but it seems that ECHO
and SET
doesn't accept data being piped into it at all?
How can I make this work?