Вставить разрыв строки / специальный символ в строку в файле

1

У меня есть файл 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
)

Спасибо, что цените всю помощь !!!

Георгий Дудников
источник
Не сработало. Вот вывод, который я получаю:
Георгий Дудников
См. Принятие ответа, чтобы убедиться, что вы понимаете, как это работает для решения, которое вы найдете, для любых ответов, которые помогут вам решить вашу проблему, просто установив небольшой серый флажок в верхней левой части ответа, который решает вашу проблему, если принять и повернуть. зеленый, чтобы показать, что это ответ, который вы приняли, так как это должно работать; Вы задаете вопрос, вы получаете ответы, и если вы получаете ответ, который отвечает вашим потребностям, вы просто принимаете этот ответ.
Сок Pimp IT

Ответы:

1

Пакетный скрипт для замены запятой CRLF

Если это достаточно для вас, попробуйте, так как это кажется простым и просто работает. , ,

Ниже приведен пакетный скрипт:

  • Используйте Get-Content и Replace для строки для поиска ( ,) и замены ( CRLF)
  • Затем он будет использовать Set-Content, чтобы поместить вновь замененную строку обратно в файл соответственно.

Примечание: значение должно быть либо полный явный путь к текстовому файлу , вы измените запятые в (например ), или же , если этот сценарий находится в той же самой папке, этот файл, то значение из должно начинаться с префикса (например , )set textFile=CRLFC\Folder\Path\USERS.txtset 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

Дополнительные ресурсы

Сок Pimp IT
источник
Не сработало . Получение ошибки при выводе: Get-Content: Невозможно найти путь 'C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Users.txt', так как он не существует
Джордж Дудников,
@ GeorgeDudnikov Я только что отредактировал свой ответ с исправлением, чтобы решить это. В своем тестировании я использовал полный явный путь, но добавил раздел « Заметки » с двумя решениями, которые должны работать в зависимости от ваших настроек.
Сок Pimp IT
Большое Вам спасибо!! Отличное разрешение !!!. ты лучший!
Георгий Дудников
@GeorgeDudnikov См. Принятие ответа, чтобы убедиться, что вы понимаете, как это работает для решения, которое вы найдете, для любых ответов, которые помогут вам решить вашу проблему, просто установив небольшой серый флажок в верхней левой части ответа, который решает вашу проблему, предполагая, что это так. и включите его зеленым цветом, чтобы показать, что это ответ, который вы приняли, так как это должно работать; Вы задаете вопрос, вы получаете ответы, и если вы получаете ответ, который отвечает вашим потребностям, вы просто принимаете этот ответ.
Сок Pimp IT