小编sas*_*sas的帖子

batch:替换文本文件中的一行


我正在尝试替换这一行:

#        forward-socks5   /               127.0.0.1:9050 .
Run Code Online (Sandbox Code Playgroud)

这一个:

        forward-socks5   /               127.0.0.1:9050 .
Run Code Online (Sandbox Code Playgroud)

这行属于一个配置文件,必须通过从开头删除#符号来启用(UN评论),除了用另一个没有#符号替换行之外,我想不出更好的方法.
任何其他想法或方法都非常有用.

顺便说一句,文本前面的空格也在那里.
我已将文本粘贴到原始文件中.

提前致谢


编辑:
我已经设法做了线添加和删除使用我发现的两个代码和平.我唯一的问题是以下代码删除了输出文件中的每一个感叹号!

@echo off

:Variables
SETLOCAL ENABLEDELAYEDEXPANSION
set InputFile=config.txt
set OutputFile=config-new.txt
set _strFind=#        forward-socks5   /               127.0.0.1:9050 .
set _strInsert=        forward-socks5   /               127.0.0.1:9050 .
set i=0

:Replace
for /f "usebackq tokens=1 delims=[]" %%A in (`find /n "%_strFind%" "%InputFile%"`) do (set _strNum=%%A)
for /f "usebackq delims=" %%A in ("%InputFile%") do (
  set /a i = !i! + 1
  echo %%A>>"%OutputFile%"
  if [!i!] == [%_strNum%] (echo %_strInsert%>>"%OutputFile%") …
Run Code Online (Sandbox Code Playgroud)

replace batch-file line text-files

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

batch-file ×1

line ×1

replace ×1

text-files ×1