到目前为止,这是我的代码:
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行文字。)
答案 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!
)