0

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

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

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

它打印:

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

(因为我有 6 行文本temp.file)。

4

1 回答 1

7

我不明白为什么你需要一个first_charexe 文件来提取单个字符,一个简单的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!
)
于 2012-05-17T17:45:12.970 回答