从一个文件中读取到另一个时保持空行原封(Keeping blank lines intact whe

2019-10-19 09:09发布

我逐行读取线从一个属性文件来使用以下代码(批处理文件)另一个文件。 问题是,它是消除从源文件中的所有空行。 什么样的变化,我应该为了使空行提供给目标文件呢?

FOR /F "USEBACKQ tokens=*" %%A IN (`FIND /V "" ^<"%FILE%.SRC"`) DO (
  ECHO %%A>>"%FILE%"
)

Answer 1:

FOR / F将始终跳过空行,所以你必须避免空行。

这可以用FINDSTR或发现前面加上一个行号线来解决。

然后,你只需要删除的行号。

(
  setlocal DisableDelayedExpansion
  for /F "delims=" %%L in ('findstr /n "^" "%FILE%.src"') do (
    set "line=%%L"
    setlocal EnableDelayedExpansion
    set "line=!line:*:=!"
    echo(!line!
    endlocal
  )
) > "%FILE%"

延迟扩展模式的触发是必要的,因为需要除去的行号至第一延迟结肠扩张。
但是,你需要为%%大号tranfering到行变量禁用扩张,否则会破坏感叹号,有时脱字。

set/p TECHNIC读取文件是一种不同的方法,在描述SO:批处理文件:如何读取文件?



文章来源: Keeping blank lines intact when reading from one file to another