复制代码
- @echo off
- if "〇"=="" (echo 〇为空)else echo 〇不为空
- rem 显示〇为空
- if "12〇34"=="1234" (echo 相同)else echo 不同
- rem 显示相同
- if 12〇34==1234 (echo 相同)else echo 不同
- rem 显示相同
- pause
原帖由 namejm 于 2010-4-6 16:20 发表
这个问题很有意思,貌似 〇 在这里被当做空值来处理了,迷惑中。
不过,你的代码有点小问题,else和后括号连在一起了,只是对结果没什么影响。
Microsoft Windows [Version 6.0.6001] Copyright (c) 2006 Microsoft Corporation. All rights reserved. C:\Test>if "〇"=="" (echo 〇为空)else echo 〇不为空 〇不为空 C:\Test>if "12〇34"=="1234" (echo 相同)else echo 不同 不同 C:\Test>if 12〇34==1234 (echo 相同)else echo 不同 不同 |
Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. C:\Documents and Settings\寒夜孤星>if "〇"=="" (echo 〇为空)else echo 〇不为空 〇为空 C:\Documents and Settings\寒夜孤星>if "12〇34"=="1234" (echo 相同)else echo 不同 相同 C:\Documents and Settings\寒夜孤星>if 12〇34==1234 (echo 相同)else echo 不同 相同 C:\Documents and Settings\寒夜孤星> |
结果如下:复制代码
- cd \ & @echo on & chcp 437 & ver
- if "〇"=="" (echo 〇 is empty) else echo 〇 is not empty
- if "12〇34"=="1234" (echo SAME) else echo NOT same
- if 12〇34==1234 (echo SAME) else echo NOT same
- if "12〇34" equ "1234" (echo SAME) else echo NOT same
- pause
Active code page: 437
Microsoft Windows XP [?? 5.1.2600]
D:\>if "⌐û" == "" (echo ⌐û is empty ) else echo ⌐û is not empty
⌐û is not empty
D:\>if "12⌐û34" == "1234" (echo SAME ) else echo NOT same
NOT same
D:\>if 12⌐û34 == 1234 (echo SAME ) else echo NOT same
NOT same
D:\>if "12⌐û34" EQU "1234" (echo SAME ) else echo NOT same
NOT same
XP系统下返回0,Vista之后的系统返回1,也许是XP系统的lstrcmp函数有BUG?复制代码
- #include <stdio.h>
- #include <Windows.h>
- int main()
- {
- wchar_t s1[] = L"〇";
- wchar_t s2[] = L"";
- printf("%d\n", lstrcmpW(s1, s2));
- return 0;
- }
欢迎光临 批处理之家 (http://bbs.bathome.net/) | Powered by Discuz! 7.2 |