我将尝试制作一个批处理文件,读取名为 "ayylmao.txt" 的文本文件,并查找特定单词 "hello" 并将其替换为 "xello"。
问题在于 "ayylmao.txt" 包含特定字符。
"Ayylmao.txt" 大致如下:
你可以在最后一行看到“hello”这个单词。我希望批处理程序能够运行并生成一个名为ayylmao1.txt的文件,文件内容如下:
你可以看到,"hello"现在变成了"xello"。
我发现了一个批处理文件,可以替换文本文件中的单词:
这段代码适用于没有特殊字符的文件,如果按照以下方式使用它,则效果非常好:
这段代码只输入了 ayylmao1.txt 中的一些特殊字符,但是替换了 hello。我希望所有特殊字符都能被输入。
我写成了这样:
问题在于 "ayylmao.txt" 包含特定字符。
"Ayylmao.txt" 大致如下:
‹‹R‹Ę‹/M‹;Ču‹č˙˙˙‹‹@‰‹‹@CëC;Đu‹čq˙˙˙‹‹@C‹D$‰;7u®‹Ó‹Ćčúţ˙˙„Ŕu3Ŕ‰YZ]_^[ĂŤ@ SVWUÄđ‰$‹ô‹‰D$‹
‹‹@;Č‚† ‹Ř‹>_‹ůz;ßrv;Ču!‹B‹A‹B‹)B‹x uV‹čđţ˙˙ëM‹Ř‹>_‹ůz;ßu
‹B‹)Bë3‹Z‰\$‹>‹‹.}+ű‰|$+Č‹‰HŤT$‹čMţ˙˙„Ŕu3 hello Ŕë°ë‹‹ ‰‹;D$…Y˙˙˙3ŔÄ]_^[ĂSVW‹Ú‹đţ }ľ ëĆ˙˙ ć ˙˙‰sjh Vj
你可以在最后一行看到“hello”这个单词。我希望批处理程序能够运行并生成一个名为ayylmao1.txt的文件,文件内容如下:
‹‹R‹Ę‹/M‹;Ču‹č˙˙˙‹‹@‰‹‹@CëC;Đu‹čq˙˙˙‹‹@C‹D$‰;7u®‹Ó‹Ćčúţ˙˙„Ŕu3Ŕ‰YZ]_^[ĂŤ@ SVWUÄđ‰$‹ô‹‰D$‹
‹‹@;Č‚† ‹Ř‹>_‹ůz;ßrv;Ču!‹B‹A‹B‹)B‹x uV‹čđţ˙˙ëM‹Ř‹>_‹ůz;ßu
‹B‹)Bë3‹Z‰\$‹>‹‹.}+ű‰|$+Č‹‰HŤT$‹čMţ˙˙„Ŕu3 xello Ŕë°ë‹‹ ‰‹;D$…Y˙˙˙3ŔÄ]_^[ĂSVW‹Ú‹đţ }ľ ëĆ˙˙ ć ˙˙‰sjh Vj
你可以看到,"hello"现在变成了"xello"。
我发现了一个批处理文件,可以替换文本文件中的单词:
@echo off
REM -- Prepare the Command Processor --
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION
if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
set "line=%%B"
if defined line (
call set "line=echo.%%line:%~1=%~2%%"
for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
) ELSE echo.
)
这段代码适用于没有特殊字符的文件,如果按照以下方式使用它,则效果非常好:
code.bat "hello" "xello" "ayylmao.txt">"ayylmao1.txt"
这段代码只输入了 ayylmao1.txt 中的一些特殊字符,但是替换了 hello。我希望所有特殊字符都能被输入。
我写成了这样:
chcp 1252
code.bat "hello" "xello" "ayylmao.txt">"ayylmao1.txt"
但是它没有起作用。它的效果就像第一段代码一样。
如果在PowerShell中有一种方法可以实现这个,我很乐意听取建议。
Replace()
方法。 - Ansgar Wiechers