Windows批处理文件替换文本问题

时间:2014-05-15 13:53:00

标签: batch-file

我有这段代码来替换JS文件中的一些文本:

@echo off &setlocal
set "search=showLog: true"
set "replace=showLog: false"
set "textfile=globalsDebugTest.js"
set "newfile=new.js"

(for /f "delims=" %%i in ('findstr /n "^" "%textfile%"') do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    set "line=!line:%search%=%replace%!"
    echo(!line!
    endlocal
))>"%newfile%"
type "%newfile%"

此脚本的问题在于在每个新行中添加行号 我只想用以下代码替换这个字符串:“showLog:true”“showLog:false”
知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

for /f "tokens=1*delims=:" %%h in ('findstr /n "^" "%textfile%"') do (

(请注意,添加了tokens=个词组,delims被分配了:,而循环元变量被更改为h。)< / p>

添加tokens=表示元变量h在分隔符(冒号)之前接收数字,i在冒号之后接收该行的剩余部分。这使更改保持在一行。

另一种选择是简单地从/n中删除findstr,这将导致从输出中删除所有空行。