ファイル内の文字列に改行/特殊文字を挿入する

ファイル内の文字列に改行/特殊文字を挿入する

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

これがあなたにとって十分なバッチである場合は、シンプルで機能すると思われるので、試してみてください。

以下のバッチ スクリプトは基本的に次のことを行います。

注記: 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

その他のリソース

関連情報