我逐行读取线从一个属性文件来使用以下代码(批处理文件)另一个文件。 问题是,它是消除从源文件中的所有空行。 什么样的变化,我应该为了使空行提供给目标文件呢?
FOR /F "USEBACKQ tokens=*" %%A IN (`FIND /V "" ^<"%FILE%.SRC"`) DO (
ECHO %%A>>"%FILE%"
)
我逐行读取线从一个属性文件来使用以下代码(批处理文件)另一个文件。 问题是,它是消除从源文件中的所有空行。 什么样的变化,我应该为了使空行提供给目标文件呢?
FOR /F "USEBACKQ tokens=*" %%A IN (`FIND /V "" ^<"%FILE%.SRC"`) DO (
ECHO %%A>>"%FILE%"
)
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:批处理文件:如何读取文件?