
Tengo el archivo USER.TXT. El archivo contiene texto:
123,234,987,877,356
Busco un script para modificar texto en el mismo archivo para:
123
234
987
877
356
Por favor, ayúdenme a editar un archivo de texto sin redirigir la salida a un archivo nuevo.
Hasta ahora tengo:
@echo off
setlocal enableextensions disabledelayedexpansion
set "search=%,"
set "replace=%%"
set "textFile=USERS.txt"
for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
set "line=%%i"
setlocal enabledelayedexpansion
>>"%textFile%" echo(!line:%search%=%replace%!
endlocal
)
¡¡¡Gracias, agradezco toda la ayuda!!!
Respuesta1
Script por lotes para reemplazar la coma conCRLF
Si esto es suficiente para usted, pruébelo, ya que parece simple y simplemente funciona. . .
El siguiente script por lotes esencialmente:
- UsarObtener el contenidoyReemplazarpara que la cadena busque (
,
) y reemplace (CRLF
)- Entonces usaráContenido del conjuntopara volver a colocar la cadena recién reemplazada en el archivo en consecuencia
Nota: El set textFile=
valor debe ser la ruta completa y explícita al archivo de texto al que cambiará las comas CRLF
(p. ej. C\Folder\Path\USERS.txt
), o si este script está exactamente en la misma carpeta que ese archivo, el valor de set textFile=
debe tener el prefijo %~dp0
(p. ej %~dp0USERS.txt
.)
@echo on
set search=,
set textFile=C:\Folder\Path\USERS.txt
::set textFile=%~dp0USERS.txt
:PowerShell
SET PSScript=%temp%\~tmpStrRplc.ps1
ECHO (Get-Content "%textFile%").replace("%search%", "`r`n") ^| Set-Content "%textFile%">"%PSScript%"
SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"
EXIT
Contenido del archivo original
123,234,987,877,356
Contenido del archivo de resultados
123
234
987
877
356