本帖最后由 cjiabing 于 2011-4-15 01:04 编辑
以前似乎在这里发过,但找了半天没找到,见namejm 问到一个类似的问题,我再发一次,大大们给个解释吧!~
用批处理命令for读取字符串,当它遇到英文状态下的分号与问号,等号与星号时,字符串的显示就会发生一些改变,下面具体看看。- 第一:分号与问号的关系:
- @echo off
- echo 分号在前,问号在后,显示分号前的内容。
- For %%a in (我喜欢;涟漪版?连连看) do echo %%a
- echo.
- pause>nul
- echo 问号在前,分号在后,显示分号后面的内容。
- For %%a in (我不会?让伤心的泪;挂满你的脸) do echo %%a
- echo.
- pause>nul
- echo 只有分号,分行显示分号前后的内容。
- For %%a in (曾梦想仗;剑走天涯) do echo %%a
- echo.
- pause>nul
- echo 只有问号,显示错误,但不会自动退出。
- For %%a in (年少的心?总有些轻狂) do echo %%a
- pause
复制代码 第二:等号与星号的关系:- @echo off
- echo 等号在前,星号在后,显示等号前的内容。
- For %%a in (人生=若只如*初见) do echo %%a
- echo.
- pause>nul
- echo 星号在前,等号在后,显示等号后面的内容。
- For %%a in (何事*秋风悲=画扇) do echo %%a
- echo.
- pause>nul
- echo 只有等号,分行显示等号前后的内容。
- For %%a in (等闲变却=故人心) do echo %%a
- echo.
- pause>nul
- echo 只有星号,显示错误,但不会自动退出。
- For %%a in (却道故人*心易变) do echo %%a
- Pause
复制代码 以上分号与问号的关系,与等号与星号的关系是一样的。其中分号和等号起到了默认分隔的作用,而问号和星号起到了忽略的作用。巧妙使用这些关系能够制造一些混乱和提取一些有用信息。
补充:
有次对网页内容进行编辑,发现一个无法读取的问题,经分析如下:- 1、for %%a in ( 我爱,北京?天安门) do echo %%a
- 2、for %%a in ( 我爱,北京天安门) do echo %%a
复制代码 上例无法显示,下例可以正常显示。由此可知,英文状态下的问号在隐藏字符串时起了关键作用,具体原理有待分析。 |