cmd-修改文本文件中的行



我有以下文本文件:

c:/users/desktop
c:/users/test
c:/users/etc
....

文本文件中的每一行都有一个字符串。我想修改文件,使每行都有两个字符串。应该是这样的:

c:/users/desktop c:/users/desktop
c:/users/test c:/users/test
c:/users/etc c:/users/etc
....

在这之后,我想更改每行中的第二个字符串,使其成为一个新的路径。有一个固定的NEW_PATH,其中包含必须插入的零件。修改后会是这样的:

c:/users/desktop f:/etc/rel/users/desktop
c:/users/test f:/etc/rel/users/test
c:/users/etc f:/etc/rel/users/etc

我正在尝试将其保存在输出文件tocopy.txt中。

如何做到这一点?

如果这是一个Windows平台,使用/而不是\作为路径分隔符有关系吗?使用字符串替换表达式是进行此更改的关键。

C:>TYPE tocopy.bat
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET EXITCODE=0
SET "OLDFILE=tocopy_source.txt"
SET "NEWFILE=tocopy.txt"
SET "OLDPATH=c:"
SET "NEWPATH=f:/etc/rel"
FOR /F "usebackq tokens=*" %%a IN (`TYPE "%OLDFILE%"`) DO (
    SET S1=%%a
    SET S2=!S1:%OLDPATH%=%NEWPATH%!
    ECHO %%a !S2!
)
EXIT /B %EXITCODE%
 8:39:26.37  C:Userspwatsonx
C:>TYPE tocopy_source.txt
c:/users/desktop
c:/users/test
c:/users/etc
C:>CALL tocopy.bat >tocopy.txt
C:>TYPE tocopy.txt
c:/users/desktop f:/etc/rel/users/desktop
c:/users/test f:/etc/rel/users/test
c:/users/etc f:/etc/rel/users/etc

最新更新