我有以下文本文件:
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