Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 为什么';我的文本抓取器不能批量工作吗?_Batch File_Text Files_Batch Processing - Fatal编程技术网

Batch file 为什么';我的文本抓取器不能批量工作吗?

Batch file 为什么';我的文本抓取器不能批量工作吗?,batch-file,text-files,batch-processing,Batch File,Text Files,Batch Processing,我正在批量开发一个程序,将玩棋盘游戏Talisman(第二版)。它处于非常早期的开发阶段,尚未准备好进行测试 在代码的某一点上,我需要打印文本文档的顶行。这部分代码如下所示: 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 Alc

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

在代码的某一点上,我需要打印文本文档的顶行。这部分代码如下所示:

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

)
似乎有效。运行时会打印“炼金术士将我的金币兑换成1”

我试过跑步:

set /p alchemObj=< 2Alchemise.txt
而且它似乎和预期的一样有效

谢谢你的帮助,Edje


()

非常感谢迈克尔·希思的回答

我对代码的早期部分使用了延迟扩展。我为什么要用“!”呢变量删除器,而不是默认的“%”删除器。 也要感谢Squashman和Mofi,因为我使用了这些建议来进一步改进我的代码

非常感谢,这给我留下了堆栈溢出的第一印象


Evyn

括号之间有代码。您可能需要延迟扩展,即
!阿切莫布。查看
set/?
setlocal/?
以获取帮助信息。要添加1个gold,您还可以执行
set/a gold+=1
。您的另一个选项是不创建代码块,如果errorlevel不是零,则跳过代码<代码>如果不是%errorlevel%==0转到跳过
。如果errorlevel 1转到跳过,则更好,因为这意味着如果
find
的退出代码大于或等于1,即find无法找到字符串。在命令提示窗口
中运行/?
以获取帮助。
if errorlevel 1 goto SKIP
或相反的
if not errorlevel 1 goto SKIP
的优点是小于1,即对于
find
和几乎所有其他控制台应用程序等于0,它甚至可以在命令块中工作,而不使用延迟扩展。另见。
set /p alchemObj=< 2Alchemise.txt
echo The Alchemist converted my %alchemObj% into 1 gold