
Eu tenho o arquivo USER.TXT. O arquivo contém texto:
123,234,987,877,356
Estou procurando um script para modificar o texto no mesmo arquivo para:
123
234
987
877
356
Por favor, ajude-me a editar um arquivo de texto sem redirecionar a saída para um novo arquivo.
Até agora eu tenho:
@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
)
Obrigado agradeço toda ajuda!!!
Responder1
Script em lote para substituir vírgula porCRLF
Se este lote for suficiente para você, experimente, pois parece simples e simplesmente funciona. . .
O script em lote abaixo irá essencialmente:
- UsarObter conteudoeSubstituirpara a string pesquisar (
,
) e substituir (CRLF
)- Então ele vai usarDefinir conteúdopara colocar a string recém-substituída de volta no arquivo de acordo
Observação: O set textFile=
valor deve ser o caminho explícito completo para o arquivo de texto para o qual você alterará as vírgulas CRLF
(por exemplo C\Folder\Path\USERS.txt
), ou então, se este script estiver exatamente na mesma pasta desse arquivo, o valor de set textFile=
deverá ser prefixado com %~dp0
(por exemplo %~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
Conteúdo do arquivo original
123,234,987,877,356
Conteúdo do arquivo de resultados
123
234
987
877
356