Windows批处理文件:如何将命令行参数与整数进行比较

Posted

技术标签:

【中文标题】Windows批处理文件:如何将命令行参数与整数进行比较【英文标题】:Windows batch files: how to compare command line argument to an integer 【发布时间】:2013-10-12 22:12:21 【问题描述】:

我只是批处理文件编程的新手,我试图在网上找到解决方案,但失败了。 我的批处理文件调用一个 c 程序,将它自己的命令行参数传递给程序,然后执行后续步骤,这些步骤取决于第四个参数(它是一个整数)的值。 如果 %4 等于 3,我想在我的批处理文件中做一个额外的步骤。我已经放置了一些 echo 测试语句。但即使我输入 3 作为第四个参数,也只会打印“testno”。


批处理文件名:p2debug1234.bat


批处理文件代码:


@echo off
@setlocal 
p2task1 %1 %2 %3 %4
start mi_viewer %1
start mi_viewer %2
echo %4
echo 3
If ("%4"== "3") (echo testyes) Else (echo testno)
echo testif

命令提示符快照:


H:\ELEC4622\labs\data>p2debug1234 pens_rgb.bmp test.bmp 2 3

3
3
testno
testif

请帮我做一个有效的比较。

最好的问候, 朱莉娅

【问题讨论】:

你真的在使用ms-dos吗?或者你可能使用窗户?如果是这样,那么这与 ms-dos 无关(这是操作系统的名称而不是命令提示符)。 我用的是windows,你是对的。对不起。 我只是一直认为windows只是扩展MS-DOS的软件。我很确定这就是它的开始(从记忆中)。但我想以后版本的 windows 不再是这种情况了。 它是,当你有 Windows 3.11 的时候。但是在 windows 95 之后,shell 已经成为 windows 的一部分,而不是相反。所以你在 18 年前是对的。 【参考方案1】:

换行:

If ("%4"== "3") (echo testyes) Else (echo testno)

到:

If "%4"=="3" (echo testyes) Else (echo testno)

【讨论】:

您应该投票和/或接受答案。这就是堆栈溢出的感谢方式。不做这些事情会破坏堆栈溢出的想法。 我不知道该怎么做。我以前从未在这个地方发过帖子

以上是关于Windows批处理文件:如何将命令行参数与整数进行比较的主要内容,如果未能解决你的问题,请参考以下文章

如何将标准输入重定向到 Windows 命令行中的文件?

为啥子字符串不能与命令行参数一起使用?

如何将 Windows 路径转换为文件:URL,在批处理文件中,适合 SVN 命令行使用

windows qt如何通过命令行参数提取带有空格的文件名

如何将参数(不是命令行参数)传递给批处理脚本中的函数

如何将整数作为命令行参数?