Este bug esta relacionado con el trato de cadenas.
La documentación sobre dicha opción dice:
Código:
usebackq - especifica que la nueva semántica está vigente,
donde una cadena entre comillas inversas se ejecuta
como un comando y una cadena con comillas simples
es un comando de cadena literal y permite el uso de
comillas dobles para entrecomillar los nombres de
archivo en un grupo de nombres de archivos.
Es decir, cambia la semantica:donde una cadena entre comillas inversas se ejecuta
como un comando y una cadena con comillas simples
es un comando de cadena literal y permite el uso de
comillas dobles para entrecomillar los nombres de
archivo en un grupo de nombres de archivos.
Código:
'' : Comandos
"" : Cadenas
No especificar comillas dobles o simples : Archivo.
Nos dice que para procesar cadenas, debemos usar comillas simples:"" : Cadenas
No especificar comillas dobles o simples : Archivo.
Código
@echo offSalida:
for /f "tokens=1 usebackq" %%_ in ('Leonardo') do (
echo %%_
)
Código:
Leonardo
Como pueden ver, usamos comillas simples para tratar cadenas.
Sin la opción "usebackq" sería asi:
Código
@echo offSalida:
for /f "tokens=1" %%_ in ("Leonardo") do (
echo %%_
)
Código:
Leonardo
Ahora, iré directo al problema que afecta a las opciones "useback" y "usebackq":
Esto produce un error:
Código
@echo offSalida:
for /f "tokens=1 usebackq" %%_ in ('1 2 3 4 5 6 7 8 10 11 12') do (
echo %%_
)
Código:
C:\>code.bat
1
El sistema no puede encontrar el archivo Ɛ§㏀§럀§풘§>♂.
C:\>
1
El sistema no puede encontrar el archivo Ɛ§㏀§럀§풘§>♂.
C:\>
Como ven, provoca un error, ya que busca un archivo, pero es claro que no estoy trabajando con archivos, sino con cadenas.
Estos también provocan error:
Código
@echo offSalida:
for /f "tokens=1 useback delims=" %%_ in ('p1 p2 p3 p4 p5 p6 p7 p8 p9') do (
echo %%_
)
Código:
p1 p2 p3 p4 p5 p6 p7 p8 p9
El sistema no puede encontrar el archivo ?.
Código
@echo offSalida:
for /f "tokens=1-20 useback delims=_" %%a in ('p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14') do (
echo %%a
)
Código:
p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14
☼?♀\.stema no puede encontrar el archivo ?¶
☼?♀\.stema no puede encontrar el archivo ?¶
En fin, esto esta probado en un Windows XP Professional Service Pack 3
Si me pudieran hacer el favor de probar si en otros sistemas falla, sino les da error, solo alteren la cantidad de tokens en el conjunto, asi:
Código
@echo off
for /f "tokens=1-20 usebackq" %%a in ('1 2 3 4 5 6 7 8 9 11 12 13 14 16 especificar ms tokens en caso de no ver error') do (
echo %%a
)
Bueno, saludos.










Autor





En línea





.


