批处理,如何读取文本文件的空白行
Batch, How To Read in a Blank Line of Text File
我需要读入第一行并判断它是空白还是一串数字。如果它是空行,程序会告诉这个文本无效然后终止,否则我将使用那个字符串做进一步的计算。
但是,我使用的代码在下面,它只是不能存储空行,这样我就不能使用 if 语句来检查它是 null 还是“”。有什么建议吗?
set "text_file=20150629_eleave_i_test.txt"
:: Get the first six characters of the first line
set /p first_six=<%text_file%
如果notepad++视图中的文本文件是
1
2 00000720150625
谢谢你的提前。
这应该有效:
set "text_file=20150629_eleave_i_test.txt"
set "first_line="
set /p first_line=< %text_file%
if not defined first_line (
echo This text is invalid
goto :EOF
)
set "first_six=%first_line:~0,6%"
@echo off
setlocal enableDelayedExpansion
set "ln="
set /p "ln=" <"20150629_eleave_i_test.txt"
if not defined ln (
echo First line is empty
) else (
for /f "delims=0123456789" %%A in ("%ln%") do echo First line is not fully numeric
) || echo First line is fully numeric
我需要读入第一行并判断它是空白还是一串数字。如果它是空行,程序会告诉这个文本无效然后终止,否则我将使用那个字符串做进一步的计算。 但是,我使用的代码在下面,它只是不能存储空行,这样我就不能使用 if 语句来检查它是 null 还是“”。有什么建议吗?
set "text_file=20150629_eleave_i_test.txt"
:: Get the first six characters of the first line
set /p first_six=<%text_file%
如果notepad++视图中的文本文件是
1
2 00000720150625
谢谢你的提前。
这应该有效:
set "text_file=20150629_eleave_i_test.txt"
set "first_line="
set /p first_line=< %text_file%
if not defined first_line (
echo This text is invalid
goto :EOF
)
set "first_six=%first_line:~0,6%"
@echo off
setlocal enableDelayedExpansion
set "ln="
set /p "ln=" <"20150629_eleave_i_test.txt"
if not defined ln (
echo First line is empty
) else (
for /f "delims=0123456789" %%A in ("%ln%") do echo First line is not fully numeric
) || echo First line is fully numeric