[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 neorobin 于 2012-6-2 11:08 编辑

原发代码未测试, 不可用, 已删, 经测试代码见 11楼

TOP

本帖最后由 neorobin 于 2012-6-2 11:09 编辑

原发代码未测试, 不可用, 已删, 经测试代码见 11楼

TOP

回复 5# batbat123
  1. if not defined found8001 (没找到 8001)
复制代码

TOP

本帖最后由 neorobin 于 2012-6-2 11:09 编辑

原发代码未测试, 不可用, 已删, 经测试代码见 11楼

TOP

本帖最后由 neorobin 于 2012-5-31 20:42 编辑

cmd 里没有象高级语言中的 case, switch 之类的流控制结构, 而且 if 也不支持复杂的逻辑表达式.

复杂一点的逻辑控制, 可选的方式有 if 配合 set /a 或者 变量组合

TOP

本帖最后由 neorobin 于 2012-6-2 11:00 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. set "Ports=8001 8002"
  3. for %%a in (%Ports% Any) do set "found%%a=0"
  4. set "foundAll=1"
  5. for /f "tokens=3,5 delims=: " %%a in ('netstat -an') do (
  6.   set /a "found%%a=1,found%%b=1"
  7. )
  8. for %%a in (%Ports%) do set /a "foundAll&=found%%a, foundAny|=found%%a"
  9. if "!foundAll!"=="1" (echo,找到全部端口) else (
  10.   for %%a in (%Ports%) do if "!found%%a!"=="1" (echo,找到端口 %%a) else (echo,未找到端口 %%a)
  11.   if "!foundAny!"=="0" (echo,未找到任何端口)
  12. )
  13. pause
复制代码

TOP

返回列表