【问题标题】:cmd - modifying lines in a text filecmd - 修改文本文件中的行
【发布时间】:2023-04-04 09:06:01
【问题描述】:

我有以下文本文件:

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 file cmd copy


    【解决方案1】:

    如果这是 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:\Users\pwatson\x
    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 2023-03-23
      相关资源
      最近更新 更多