Como puedo reemplazar en un archivo de texto, desde un archivo por lotes (DOS/CMD) un caracter por una comilla doble (")?
Estoy usando las siguientes rutinas para reemplazar caracteres en un archivo de texto a cuyo contenido le doy un par de pasadas para dejar el texto con el formato que necesito. El tema es que funcionan todos menos :INICIO4
El archivo que formateo lo obtengo del comando Write-line de Autocad que no me permite escribir comillas en el archivo de salida, motivo por el cual lo reemplacé por el numeral.
Estuve probando el EDLIN también pero todavía no encontré la vuelta.
Dado que, como tengo que hacer referencia a un path en algunos nombres de carpetas tengo algunos espacios, para que la línea de comandos los reconozca, hay que cerrarlos con comillas. Y hete aquí el problema en cuestión.
:Inicia
:REEMPLAZA_BARRAS
set cadenaorigen=/
set cadenaorigen=%cadenaorigen:"=%
set cadenasustitucion=-
set cadenasustitucion=%cadenasustitucion:"=%
set archivo=nombre.txt
for /f "tokens=* delims=" %%i in (%archivo%) do (set ANT=%%i&echo !ANT:%cadenaorigen%=%cadenasustitucion%! >>kk_temp.txt)
copy /y kk_temp.txt %archivo%
del /q kk_temp.txt
:Inicia2
:REEMPLAZA_DOS_PUNTOS
set cadenaorigen=:
set cadenaorigen=%cadenaorigen:"=%
set cadenasustitucion=.
set cadenasustitucion=%cadenasustitucion:"=%
for /f "tokens=* delims=" %%i in (%archivo%) do (set ANT=%%i&echo !ANT:%cadenaorigen%=%cadenasustitucion%! >>kk_temp.txt)
type kk_temp.txt
copy /y kk_temp.txt %archivo%
del /q kk_temp.txt
:Inicia3
:quita_espacios
set cadenaorigen=" "
set cadenaorigen=%cadenaorigen:"=%
set cadenasustitucion=""
set cadenasustitucion=%cadenasustitucion:"=%
for /f "tokens=* delims=" %%i in (%archivo%) do (set ANT=%%i&echo !ANT:%cadenaorigen%=%cadenasustitucion%! >>kk_temp.txt)
type kk_temp.txt
copy /y kk_temp.txt %archivo%
del /q kk_temp.txt
:INICIA 4 (no me reemplaza el # por una “ –una comilla doble- sino por un espacio en blanco)
:cambia_por_comillas
set archivo=NO_BORRAR_1.txt
set cadenaorigen=#
set cadenaorigen=%cadenaorigen:"=%
set cadenasustitucion=”
set cadenasustitucion=%cadenasustitucion:"=%
for /f "tokens=* delims=" %%i in (%archivo%) do (set ANT=%%i&echo !ANT:%cadenaorigen%=%cadenasustitucion%! >>kk_temp.txt)
type kk_temp.txt
En cuanto al EDLIN intenté hacer lo que explica esta página pero para comillas y no logré hacerlo funcionar.
http://www.lawebdelprogramador.com/foros/Ms-Dos/1042385-Reemplazar-con-edlin.html