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
)

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

1 ответ1

1

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

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

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

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

Примечание: set textFile= value должен быть либо полным явным путем к текстовому файлу, который вы замените запятыми на 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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .