当文件为空或不存在时,哪个CMD命令将生成错误?

当文件为空或不存在时,哪个CMD命令将生成错误?,cmd,windows-7,Cmd,Windows 7,。。。这样我才能写作 thatcommand myfile.txt && ECHO Is non-empty || ECHO Is empty or absent (对于表单处理器:这完全描述了问题。)要将其限制为代码中具有相同方法的一个命令,可以尝试 (>nul 2>nul findstr/m“^”myfile.txt“&&echo ok | | echo为空或不存在 此代码使用findstr检查与任何内容匹配的正则表达式的文件内容,并仅返回文件名(将搜索保留在第一个匹配项

。。。这样我才能写作

thatcommand myfile.txt && ECHO Is non-empty || ECHO Is empty or absent

(对于表单处理器:这完全描述了问题。)

要将其限制为代码中具有相同方法的一个命令,可以尝试

(>nul 2>nul findstr/m“^”myfile.txt“&&echo ok | | echo为空或不存在
此代码使用
findstr
检查与任何内容匹配的正则表达式的文件内容,并仅返回文件名(将搜索保留在第一个匹配项上)

  • 如果文件存在且不为空,则正则表达式将找到匹配项。命令清除
    errorlevel

  • 如果文件为空,则不存在任何可能的匹配项和命令 将
    errorlevel
    设置为
    1

  • 如果文件不存在,则命令直接失败(未找到文件),并且
    errorlevel
    设置为
    1


要将其限制为代码中具有相同方法的一个命令,您可以尝试

(>nul 2>nul findstr/m“^”myfile.txt“&&echo ok | | echo为空或不存在
此代码使用
findstr
检查与任何内容匹配的正则表达式的文件内容,并仅返回文件名(将搜索保留在第一个匹配项上)

  • 如果文件存在且不为空,则正则表达式将找到匹配项。命令清除
    errorlevel

  • 如果文件为空,则不存在任何可能的匹配项和命令 将
    errorlevel
    设置为
    1

  • 如果文件不存在,则命令直接失败(未找到文件),并且
    errorlevel
    设置为
    1


正如Compo所指出的,检查文件大小可能是更好的处理方法。一个选择是

对于“%a in”(“myfile.txt”)中的%%a,如果“%%~za”gtr“0”(echo ok)其他(echo为空或不存在),则执行
  • 如果文件存在,则根据
    0
    检查其大小(注意:字符串比较操作用于避免大小大于231的问题)

  • 如果文件不存在,
    ~z
    修饰符将返回一个空字符串,其字母顺序低于
    “0”


正如Compo所指出的,检查文件大小可能是更好的处理方法。一个选择是

对于“%a in”(“myfile.txt”)中的%%a,如果“%%~za”gtr“0”(echo ok)其他(echo为空或不存在),则执行
  • 如果文件存在,则根据
    0
    检查其大小(注意:字符串比较操作用于避免大小大于231的问题)

  • 如果文件不存在,
    ~z
    修饰符将返回一个空字符串,其字母顺序低于
    “0”


如果文件存在且大小大于0字节,则该文件为非空文件,否则该文件为空或不存在。搜索并尝试检查文件大小的命令,如果您自己的代码失败,则返回此处编辑您的问题以及代码尝试和相关解释。如果文件存在且大小大于0字节,则该文件为非空,否则该文件为空或不存在。搜索并尝试检查文件大小的命令,如果您自己的代码失败,则返回此处,编辑您的问题,并提供代码尝试和相关解释。谢谢。如果您愿意将这两个答案作为两个答案发布,我会接受其中一个。@ChrisJJ,没问题,原始答案中的两个选项现在是两个不同的答案。谢谢PS相关问题Q:谢谢。如果您愿意将这两个答案作为两个答案发布,我会接受其中一个。@ChrisJJ,没问题,原始答案中的两个选项现在是两个不同的答案。谢谢PS相关的Q:Downvoting。它没有回答这个问题。注意“e.g.”@ChrisJJ,当然,这并不能回答公开术语中的问题,但我必须包含它,因为这种方法要快得多。它没有回答这个问题。请注意@ChrisJJ的“e.g.”,当然,这并不能回答公开术语中的问题,但我必须将其包括在内,因为这种方法要快得多。