
У меня есть файл USER.TXT. Файл содержит текст:
123,234,987,877,356
Я ищу скрипт для изменения текста в том же файле на:
123
234
987
877
356
Пожалуйста, помогите мне отредактировать текстовый файл, не перенаправляя вывод в новый файл.
На данный момент у меня есть:
@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
)
Спасибо вам большое за помощь!!!
решение1
Пакетный скрипт для замены запятой наCRLF
Если этого вам достаточно, попробуйте, это кажется простым и работает...
Пакетный скрипт ниже по сути выполняет следующие действия:
- ИспользоватьПолучить-КонтентиЗаменятьдля строки для поиска (
,
) и замены (CRLF
)- Затем он будет использоватьНабор-Контентчтобы поместить вновь замененную строку обратно в файл соответствующим образом
Примечание: Значение set textFile=
должно быть либо полным явным путем к текстовому файлу, на который вы измените запятые CRLF
(например, C\Folder\Path\USERS.txt
), либо, если этот скрипт находится в той же папке, что и этот файл, значение set textFile=
должно иметь префикс %~dp0
(например %~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
Исходное содержимое файла
123,234,987,877,356
Содержимое файла результата
123
234
987
877
356