为什么我的文本采集器不能批量工作?

Why doesn't my text grabber work in batch?

我正在批量开发一个可以玩棋牌游戏护身符(第二版)的程序。它处于非常早期的开发阶段,尚未准备好进行测试。

在代码中的某个位置,我需要打印文本文档的第一行。这部分代码如下所示:

find /I "alchemy" priorities.txt >nul
if %errorlevel%==0 (
set /p alchemObj=< 2Alchemise.txt
echo I will visit the alchemist in the city.
echo.
echo The Alchemist converted my %alchemObj% into 1 gold
set /a gold=%gold%+1
echo I now have %gold% gold.

for /f "skip=1 delims=*" %%a in (2Alchemise.txt) do (
echo %%a >>newfile.txt
)
xcopy newfile.txt 2Alchemise.txt /y >nul
del newfile.txt /f /q >nul

)

当这个程序是 运行 除了

之外的所有内容
echo The Alchemist converted my %alchemObj% into 1 gold

似乎有效。当它是 运行 时它打印 "The Alchemist converted my into 1 gold"

我试过了运行宁:

set /p alchemObj=< 2Alchemise.txt

然后

echo The Alchemist converted my %alchemObj% into 1 gold

它似乎按预期工作。

感谢您的帮助,Edje

(Click here to download whole file)

非常感谢 michael_heath 的回答。

我对代码的较早部分使用了延迟扩展。无论出于何种原因,我都需要使用“!”变量分隔符,而不是默认的“%”分隔符。 还要感谢 Squashman 和 Mofi,因为我使用这些建议进一步改进了我的代码。

非常感谢,这让我对 Stack Overflow 有了很好的第一印象。

艾文