Windows XP中的批处理命令已经同DOS下的大不相同,我发现IF命令也强大了很多。
在批处理程序中执行条件处理。如果 if 命令中指定的条件为真,Windows 将执行该条件后的命令。如果条件为假,Windows 将忽略 if 子句中的命令,并执行 else 子句中的任何命令(如果已经指定了命令)。这和以前DOS下的相同。
if [not] string1==string2 command [else expression]
if [not] exist filename command [else expression]
Windows XP增强了一些功能,如可启用了命令扩展:
if cmdextversion number command [else expression]
if defined variable command [else expression]
compare-op,为以下三字母比较操作符中的一个:
EQU 等于(equal)
NEQ 不等于(not equal)
LSS 少于(less)
LEQ 少于或等于(less or equal)
GTR 大于(greater)
GEQ 大于或等于(greater or equal)
/i
指定 /i 开关时,将强制字符串比较按忽略大小写情况进行。/i 开关也可以用于 if 的 string1==string2 格式。这些比较是通用的,如果 string1 和 string2 都由所有的数字组成,那么字符串将被转换为数字并且将执行数字比较。
if...else... 要符合下面的写法。这个写法很接近常规的C/PHP语言,而且非常有用。
cmdline1
cmdline2
cmdline3
) else (
cmdline4
cmdline5
)
一个范例:
setlocal
set KDS_ID = 242
set KDS_NAME = " - Saito Asami"
if %KDS_ID% lss 237 (
copy kds1.png %TEMP%\kds.cmd
) else (
copy kds2.png %TEMP%\kds.cmd
)
delete kds1.png
delete kds2.png
start %TEMP%\kds.cmd %KDS_ID% %KDS_NAME%
endlocal
一位女子,开出征婚条件有两点
1.要帅
2.要有车
电脑去帮她搜寻 结果:象棋
这位女子,不服搜出的结果又输入
1.要有漂亮的房子
2.要有很多钱
电脑去帮她再次搜寻的结果:银行
此女子仍然不失望,继续输入条件
1要长得酷
2又要有安全感
结果搜出的结果是:奥特曼
此女子仍然不失望,还继续输入条件
1.要帅
2.要有车
3.要有漂亮的房子
4.要有很多钱
5要长得酷
6又要有安全感
电脑去帮她再次搜寻的结果:奥特曼在银行里下象棋
Apahce是个很NB的WWW服务器,其下的Mod_Rewrite更是一个异常NB的模块。
今天谈一下Mod_Rewrite的强大功能之一——.htaccess防盗链功能。
比如你有一个网站,拥有spyrise.com,spyrise.cn,spyrise.org三个域名。为了达到图片防盗链的目的,可以在根目录下面建一个.htaccess文件,内容如下:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !spyrise.com [NC]
RewriteCond %{HTTP_REFERER} !spyrise.cn [NC]
RewriteCond %{HTTP_REFERER} !spyrise.org [NC]
RewriteRule .(jpg|gif|png|bmp|swf|jpeg) /error.gif [R,NC,L]
RewriteRule ^(.*)$ http:\/\/image.spyrise.cn\/image\/$1 [L]
蓝色部分,是判断是否盗链。如果以上条件都成立(即访问图片的请求,既不是直接输入网址,也不是来自spyrise.com,也不是来自spyrise.cn,也不是来自spyrise.org的话),就执行下列转向。
红色部分,是让所有盗链 img 目录下 jpg、gif、png、bmp、swf、jpeg 文件的网页,显示的图片都用根目录下的 error.gif 图片替换掉。注意替换显示的图片不要放在设置防盗链的 img 目录下。如果照上面的规则判断出图片请求不是盗链的,就执行以下转向。
绿色部分,是对 img 目录下所有的请求都转向到目标服务器,比如有个图片原来的 url 是 http://www.spyrise.org/img/girl.jpg ,现在就会转到 http://image.spyrise.org/image/girl.jpg 去。当然了你得先把原服务器 img 目录下的文件统统拷贝到临时服务器的 image 目录下,转向才会真正可用。起到的效果就是把原服务器图片下载所占用的流量统统省下,让临时服务器来承受了。
但要注意Mod_Rewrite模块会使Apache性能略有下降,不过比起Mod_Rewrite带来的好处,这点也不算什么了,呵呵。




2008/12/05
