我需要在input.txt
文件中找到一个字符串
Current Playback Device ID=2A99FA92-E624-4650-A032-DA719D9B03D5
并将其替换为:
Current Playback Device ID=721D0FD1-DD46-11d0-8AAC-00A0C91D299F
但是考虑到替换必须也是原始字符串 - 在这种情况下Current Playback Device ID=2A99FA92-E624-4650-A032-DA719D9B03D5
- 包含不同的聊天者
例如
Current Playback Device ID=AAAAAAAA-E624-AAAA-A032-AAAAAAAAAAAA
或
Current Playback Device ID=AAA2AAAAAAAAAAA
字符串"Current Playback Device ID="
已修复
但"="
之后的值可能不同
在所有情况下,最终结果必须是
Current Playback Device ID=721D0FD1-DD46-11d0-8AAC-00A0C91D299F
我该怎么办?
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
SET "filename1=%sourcedir%\q36387900.txt"
SET "outfile=%destdir%\outfile.txt"
SET "replacementstring=721D0FD1-DD46-11d0-8AAC-00A0C91D299F"
(
FOR /f "usebackqtokens=1*delims=" %%a IN ("%filename1%") DO (
FOR /f "delims==" %%x IN ("%%~a") DO (
IF "%%x"=="Current Playback Device ID" (
ECHO(%%x=%replacementstring%
) ELSE (ECHO(%%a
)
)
)
)>"%outfile%"
GOTO :EOF
您需要更改sourcedir
和destdir
的设置以适合您的具体情况。
我使用了一个名为q36387900.txt
的文件,其中包含一些虚拟数据供我测试。
生成定义为%outfile%
的文件将删除空行。
阅读每一行。对行读取标记并将=
之前的任何字符串分配给%%x
。如果该字符串与目标字符串匹配,则写出starget + replacement string;否则只是反复阅读该行。