过去我不必编写太多批处理文件代码,我试图通过编写测试批处理文件来了解为什么其他人的代码失败。我的代码:
:DoUntil
type p.txt >> log.txt
if %ERRORLEVEL% EQU 0 goto DoUntil
ECHO %ERRORLEVEL%
p.txt 是一个现有的文本文件,具有一个简单的字符串,就像 log.txt 一样。
然后我运行两次以得到错误:
The process cannot access the file because it is being used by another process.
如你所料。现在我希望设置 ERRORLEVEL 并由回声返回一个值,那么我做错了什么请命令按照我的预期得到这个回声?(它永远不会碰到回声)
或者在任何地方我都可以获得“类型”的可能返回值列表?由于所有术语的常用程度,我发现在这个主题上进行谷歌搜索非常令人沮丧!我在这里阅读了其他一些问题,这些问题帮助我纠正了示例代码中的一个问题,但不是基本问题。
编辑:
Jeb 在下面的回答非常完美地回答了我的问题,但我未能继续推进。我们的问题代码如下:
:DoUntil
type p.txt >> log.txt
if ERRORLEVEL 1 goto DoUntil
所以代码试图说“如果类型失败,重试直到它工作”。我们是否通过在类型末尾没有“|| rem”子句+空语句来表示 if 语句基本上什么都不做?