如何使用批处理从文件中提取每行的第一个字母?

时间:2012-05-17 17:29:38

标签: batch-file

到目前为止,这是我的代码:

FOR /f %%G IN (temp.file) DO (
    echo %%G > temp
    first_char.exe temp > letter
    set /p myLetter =<letter
    echo %myLetter%
)

first_char.exe将输入文件中的第一个字符打印到stdout。

打印:

ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.

(因为temp.file中有6行文字。)

1 个答案:

答案 0 :(得分:6)

我不明白为什么你需要一个first_char exe文件来提取一个char,一个简单的var:~0,1也应该有效。

ECHO is off.问题是%myLetter%扩展时间的问题 当解析完整的括号块时,它会展开,此时myLetter%为空,因此只有空行。

setlocal EnableDelayedExpansion
FOR /f %%G IN (temp.file) DO (
    set "var=%%G"
    set "myLetter=!var:~0,1!"
    echo !myLetter!
)