windows - 批量替换多个不同的字符串

标签 windows string batch-file replace

<分区>

我在下面找到了替换字符串的解决方案,但我并不完全理解它。
我该如何更改代码以每行替换 3 个字符串?
我的更改(第 12 和 13 行)尚未生效。

是否可以不运行第二个和第三个循环?

ECHO off
SETLOCAL enabledelayedexpansion

SET source="C:\source.srt"
SET target="C:\target.srt"

IF EXIST %target% DEL /f %target%

FOR /f "delims=" %%i IN ('FINDSTR . %source%') DO (
   SET line=%%i
   SET line=!line:ö=oe!
   SET line=!line:ä=ae!
   SET line=!line:ü=ue!
   ECHO !line! >> %target%
)

最佳答案

你不想用sed吗? ?这将是一个简单的一行命令。

sed -e 's/ö/oe/g' -e 's/ä/ae/g' -e 's/ü/ue/g' source.srt

关于windows - 批量替换多个不同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11744230/

相关文章:

c++ - MinGW 4.7.1 无法识别命令行选项 -static-libstdc++

windows - 如何转储可执行文件的所有函数名称?

string - 在 PowerShell 中如何将 Invoke-WebRequest 内容与字符串进行比较

string - PowerShell 中的多行字符串到单行字符串的转换

Windows Batch : Search all files in file, 如果行包含 "apple"或 "tomato"回显它

javascript - 如何在jrunscript或jjs中访问stdin(在win7上)

windows - 用于在受信任的根证书存储上安装 SSL 证书的脚本

c# - Windows RPC 调整

c++ - COM:返回字符串的拷贝,还是实际值?

C++:字符串索引和保留标点符号的问题