Hola !
Veran, el code funciona en que el usuario debe escribir cualquier cosa en un documento de texto y GUARDARLO, luego es alli donde esta mi duda.
¿Coma hago para encerrar entre comillas cada LINEA que el usuario escriba?
Ejemplo:
El User escribe:
Hola, me gusta este foro
mi nick es Nilrac
Luego de ejecutar el code me lo devuelva así:
"Hola, me gusta este foro"
"mi nick es Nilrac"
Gracias
En archivo.txt pones la ruta de tu archivo
for /f "delims=" %%i in (archivo.txt) do (echo "%%i")
o sino tambien podes poner...
for /f "delims=" %%i in ('type "archivo.txt"') do (echo "%%i")
Salu2
Hola maxx93 ::)
He modificado un poco el code, el problema es que le coloca comillas a la ultima linea y necesito que sean todas las lineas
for /f "delims=" %%a in ('type "archivo.txt"') do ( echo "%%a" > carlos.txt )
Gracias
Aca te corrijo el code...
@echo off>carlos.txt
for /f "delims=" %%a in ('type "archivo.txt"') do ( echo "%%a" >> carlos.txt )
Te digo el problema estaba en que cuando pones
> carlos.txt
Estas haciendo que cada linea sea reemplazada por la siguiente, por esto te aparece la ultima linea.
Salu2
Perfecto amigo muchas Gracias !
Se me paso por alto ;-)
__________________________
Otra cosa,
Estoy tratando buscar unas palabras en particular en unarchivo de texto y que si las encuentra realize cierta ejecucion.
este es el code:
IF EXIST ARCHIVO.TXT (
TYPE ARCHIVO.TXT | FINDSTR /R /V /I "HOY" && (
DEL /F /Q ARCHIVO.TXT > NUL
))
lo que sucede es que si está la palabra o no HOY el archivo se elimina. lo que deseo es que si esta que se elimine el archivo de lo contrario no !
Gracias !
if %errorlevel%==0 del /f /q archivo.txt >nul
si no me equivoco sería así
Cita de: Nilrac en 20 Julio 2010, 05:00 AM
Perfecto amigo muchas Gracias !
Se me paso por alto ;-)
__________________________
Otra cosa,
Estoy tratando buscar unas palabras en particular en unarchivo de texto y que si las encuentra realize cierta ejecucion.
este es el code:
IF EXIST ARCHIVO.TXT (
TYPE ARCHIVO.TXT | FINDSTR /R /V /I "HOY" && (
DEL /F /Q ARCHIVO.TXT > NUL
))
lo que sucede es que si está la palabra o no HOY el archivo se elimina. lo que deseo es que si esta que se elimine el archivo de lo contrario no !
Gracias !
Nilrac, tu error está en que no entiendes lo que hace el comando findstr, consulta la opción /v y verás por qué.
Así debería funcionar:
if exist "archivo.txt" (
type "archivo.txt" | findstr /r /i "hoy" && (
del /f /q "archivo.txt"
)
)
Lo que decimos con el código anterior es:
Si existe el archivo "archivo.txt" entonces:
-muestro el archivo y si en el archivo aparece la palabra "hoy" entonces:
-eliminamos el archivo "archivo.txt"
Lo que decimos con el código anterior es:
Si existe el archivo "archivo.txt" entonces:
-muestro el archivo y si en el archivo aparece la palabra "hoy" entonces:
-eliminamos el archivo "archivo.txt"
[/quote]
Excelente interpretacion amigo ::)
Efectivamente el error estaba en "/v" tengo que ser mas minusioso con mis code :¬¬, muchas Gracias ;-)
________________________________________________
Hola !
Necesito un poco mas de ayuda por favor para quitar todas las comillas (") de un .txt y que me envie toda la unformacion restante a otro .txt
for /f "delims=" %%a in ('type "archivo1.txt"') do ( Echo %%a >> archivo2.txt)
El problema, es que me da error al colocar las comillas al lado de delims
El comando FOR tiene un bug con las comillas, por lo que no podrás usar las dobles comillas como delimitadores.
Lo que podrías hacer es sustituir las dobles comillas por otro caracter en el archivo y enviarlo a un archivo temporal que fácilmente puedas trabajar:
setlocal enabledelayedexpansion
for /f "tokens=*" %%_ in ('type "file.txt"') do (
set lineContents=%%_
echo !lineContents:"=,!
)>> "temporal.txt"
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 !
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.
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 ?
________________________________
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
If exist file.txt (
setlocal enabledelayedexpansion
for /f "tokens=*" %%_ in ('type "file.txt"') do (
set lineContents=%%_
echo !lineContents:"=,!
)>> "temporal.txt"
)
No funciona ?
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