
Ich habe eine USER.TXT-Datei. Die Datei enthält den folgenden Text:
123,234,987,877,356
Ich suche nach einem Skript, um Text in derselben Datei wie folgt zu ändern:
123
234
987
877
356
Helfen Sie mir bitte, eine Textdatei zu bearbeiten, ohne die Ausgabe in eine neue Datei umzuleiten.
Bisher habe ich:
@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
)
Vielen Dank, ich bin für jede Hilfe dankbar!!!
Antwort1
Batch-Skript zum Ersetzen von Kommas durchCRLF
Wenn Ihnen diese Menge reicht, probieren Sie es aus, denn es scheint einfach zu sein und funktioniert einfach …
Das folgende Batch-Skript führt im Wesentlichen Folgendes aus:
- VerwendenInhalte abrufenUndErsetzenfür die zu suchende (
,
) und zu ersetzende Zeichenfolge (CRLF
)- Dann wird es verwendenSet-Inhalteum den neu ersetzten String wieder entsprechend in die Datei einzufügen
Notiz: Der set textFile=
Wert sollte entweder der vollständige, explizite Pfad zur Textdatei sein, in die Sie die Kommas ändern CRLF
(z. B. C\Folder\Path\USERS.txt
), oder, wenn sich dieses Skript im selben Ordner wie die Datei befindet, sollte dem Wert das Präfix (z. B. ) set textFile=
vorangestellt werden.%~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
Ursprünglicher Dateiinhalt
123,234,987,877,356
Inhalt der Ergebnisdatei
123
234
987
877
356