
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