到目前为止这是我的代码:
FOR /f %%G IN (temp.file) DO (
echo %%G > temp
first_char.exe temp > letter
set /p myLetter =<letter
echo %myLetter%
)
Run Code Online (Sandbox Code Playgroud)
first_char.exe 从输入文件中向stdout输出第一个char.
它打印:
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
ECHO is off.
Run Code Online (Sandbox Code Playgroud)
(因为我有6行文字temp.file).
我不明白为什么你需要一个first_charexe文件来提取一个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!
)
Run Code Online (Sandbox Code Playgroud)