Encerrar entre comillas- Batch[Solucionado]

Iniciado por Nilrac, 19 Julio 2010, 23:19 PM

0 Miembros y 1 Visitante están viendo este tema.

Nilrac

Ultimamente he estado leyendo un tutorial de for, y busque algo sobre las comillas pero no decia absolutamente nada acerca del bug.

Son datos importantes en un proceso de aprendizaje  ;D

Serias tan amable de explicarme:

setlocal enabledelayedexpansion --> ?


Gracias !

maxx93

#11
Si lo que quieres es eliminar las comillas y no remplazarlas por nada en vez de usar
Citar
   echo !lineContents:"=,!
parte del code de Leo Gutiérrez.

puedes usar...

echo !lineContents:"=!


Con respecto a

setlocal enabledelayedexpansion

lo que hace es habilitar la expansión de la variable de entorno retardada, en el for si usas una variable "comun" digamos que se la toma como unica y no se reemplaza nose como explicarme bien, pero con este code hace que se reemplaze, y para usar este tipo de variable en vez de referirte con %% te referis con !!.

Por ej. Si queres contar las lineas de temporal.txt y usas este code

set n=0
for /f %%a in (temporal.txt) do (set /a n=%n%+1)
echo %n%
pause>nul

Te devolvera 1 por mas que tengas 999 lineas.
Pero si usas este code

setlocal enabledelayedexpansion
set n=0
for /f %%a in (temporal.txt) do (set /a n=!n!+1)
echo %n%
pause>nul

Te devolvera la cantidad de lineas.
Salu2.

Nilrac

#12
Cuando dices

setlocal enabledelayedexpansion
lo que hace es habilitar la expansión de la variable de entorno retardada


Afecta a la variable "comun" que esta atras o la que sigue ?


---------------------------------------------

Hay alguna manera de quitar las comillas a un archivo de texto en especifico, sin usar for ?, tal vez con un FINDSTR ?

________________________________

Código (dos) [Seleccionar]

setlocal enabledelayedexpansion
for /f "tokens=*" %%_ in ('type "file.txt"') do (
   set lineContents=%%_
   echo !lineContents:"=,!
)>> "temporal.txt"


Por que si al comando de leo le agrego

Código (dos) [Seleccionar]
If exist file.txt (
setlocal enabledelayedexpansion
for /f "tokens=*" %%_ in ('type "file.txt"') do (
   set lineContents=%%_
   echo !lineContents:"=,!
)>> "temporal.txt"
)

No funciona ?

maxx93

#13
Afecta a la variable, al ponerle %% o !! la estas usando de otro modo. Findstr solo busca una cadena en un archivo/s, no creo que pueda usarse para el propósito. A mi ese code modificado me funciona  :-\ Salu2