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

8
我是一个新手批处理编程,我尝试在网上找到解决方案,但失败了。我的批处理文件调用一个C程序,并将自己的命令行参数传递给程序,然后执行依赖于第四个参数(一个整数)值的后续步骤。如果%4等于3,我想在批处理文件中执行额外的步骤。我已经放置了一些回声测试语句,但只有“testno”被打印出来,即使我输入3作为我的第四个参数。
批处理文件名称: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

请帮我进行一次有效的比较。

最好的祝福, 朱莉娅


1
你真的在使用 MS-DOS 吗?或者你可能是在使用 Windows?如果是这样,那么这与 MS-DOS 没有任何关系(它只是一个操作系统的名称,而不是命令提示符)。 - joojaa
我正在使用Windows,你是对的。抱歉。 - user2851154
我一直以为Windows只是扩展了MS-DOS的软件。我相当肯定起初它就是这样的(凭记忆)。但是我猜现在的Windows版本不再是这样了。 - user2851154
1
在 Windows 3.11 的时候是这样的。但是自从 Windows 95 以后,Shell 就成为了 Windows 的一部分,而不是相反。所以你在18年前是正确的。 - joojaa
1个回答

18

更改行:

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

至:

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

2
你应该投票并接受答案。这是在Stack Overflow中表示感谢的方式。不执行任何这些操作都会破坏Stack Overflow的理念。 - joojaa
我不确定如何做。我以前从未在这个地方发布过。 - user2851154

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接